// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

#include <stddef.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "platform.h"
#include "testing.h"
#include "crypto/rsa.h"
#include "testing/crypto/rsa_testing.h"


TEST_SUITE_LABEL ("rsa");


const struct rsa_public_key RSA_PUBLIC_KEY = {
	.modulus = {
		0xc9,0x44,0x8c,0x40,0x6c,0x1f,0x64,0x8d,0xcb,0xa1,0xc7,0x3b,0x14,0xb4,0x89,0xd1,
		0x25,0x57,0x4a,0x5d,0xd5,0xaa,0x2c,0x1f,0x80,0x23,0x23,0xfc,0xc2,0xda,0xfc,0x7c,
		0xa6,0xad,0x35,0x83,0xab,0x92,0x1b,0x71,0x05,0xba,0x75,0x11,0x1e,0xdd,0x60,0x2a,
		0xe7,0xbe,0x91,0x3f,0xed,0xaa,0xe3,0x43,0x17,0x28,0x85,0x29,0xfd,0xb6,0x81,0x78,
		0x00,0xc0,0xe4,0xc1,0xb1,0x79,0x73,0x9e,0x91,0x5a,0x78,0x07,0x11,0x2a,0x24,0xd7,
		0xcc,0x22,0x35,0x2b,0xdf,0xbb,0xf7,0x62,0xdf,0x47,0x19,0xba,0x1f,0xbc,0x9a,0x5b,
		0x54,0xf5,0xa7,0x6a,0x39,0xcb,0x6b,0xe0,0xa5,0xb8,0x0a,0xa0,0x06,0x93,0xec,0xd8,
		0x03,0xbb,0x49,0x89,0xa8,0xfa,0x88,0x07,0x5e,0xc5,0x0f,0xad,0xb1,0xd1,0xa9,0x36,
		0x48,0x27,0x5f,0x40,0xa0,0x7c,0x2a,0x42,0x9c,0xdf,0x41,0x09,0x28,0xe0,0x05,0xad,
		0x51,0x44,0x96,0x98,0x34,0x7a,0x74,0xaa,0x9d,0xda,0x49,0x71,0xdd,0x6b,0xf0,0x74,
		0xf4,0x01,0xed,0x9d,0x42,0xd0,0x12,0x4a,0x63,0x7c,0xd0,0x6e,0x93,0x1f,0x9e,0xb6,
		0x40,0x93,0x23,0xa6,0x09,0xb7,0xac,0x2d,0x3e,0x79,0x8d,0x56,0x85,0x9f,0xc7,0x5a,
		0x58,0xa7,0x8f,0xdf,0x22,0x14,0x94,0x10,0x66,0xe6,0xd6,0xbb,0x2c,0x3f,0x05,0x63,
		0xb3,0x7a,0x64,0xf5,0x6d,0x52,0x82,0x82,0x3a,0x17,0x95,0x89,0xb1,0xb3,0x12,0x4d,
		0x21,0x64,0x4f,0x58,0xe9,0x4e,0x68,0xfa,0x5d,0x5e,0x80,0x49,0x78,0x70,0x4f,0x60,
		0xa3,0x59,0xca,0x3a,0xb0,0x04,0xb3,0xd2,0x34,0xae,0xac,0x7e,0xdc,0x17,0x16,0x81
	},
	.mod_length = 256,
	.exponent = 65537
};

const char RSA_PUBKEY_PEM[] = "-----BEGIN PUBLIC KEY-----\n"
	"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyUSMQGwfZI3Locc7FLSJ"
	"0SVXSl3VqiwfgCMj/MLa/HymrTWDq5IbcQW6dREe3WAq576RP+2q40MXKIUp/baB"
	"eADA5MGxeXOekVp4BxEqJNfMIjUr37v3Yt9HGbofvJpbVPWnajnLa+CluAqgBpPs"
	"2AO7SYmo+ogHXsUPrbHRqTZIJ19AoHwqQpzfQQko4AWtUUSWmDR6dKqd2klx3Wvw"
	"dPQB7Z1C0BJKY3zQbpMfnrZAkyOmCbesLT55jVaFn8daWKeP3yIUlBBm5ta7LD8F"
	"Y7N6ZPVtUoKCOheVibGzEk0hZE9Y6U5o+l1egEl4cE9go1nKOrAEs9I0rqx+3BcW"
	"gQIDAQAB\n"
	"-----END PUBLIC KEY-----\n";

const size_t RSA_PUBKEY_PEM_LEN = sizeof (RSA_PUBKEY_PEM);

const uint8_t RSA_PUBKEY_DER[] = {
	0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,
	0x00,0xc9,0x44,0x8c,0x40,0x6c,0x1f,0x64,0x8d,0xcb,0xa1,0xc7,0x3b,0x14,0xb4,0x89,
	0xd1,0x25,0x57,0x4a,0x5d,0xd5,0xaa,0x2c,0x1f,0x80,0x23,0x23,0xfc,0xc2,0xda,0xfc,
	0x7c,0xa6,0xad,0x35,0x83,0xab,0x92,0x1b,0x71,0x05,0xba,0x75,0x11,0x1e,0xdd,0x60,
	0x2a,0xe7,0xbe,0x91,0x3f,0xed,0xaa,0xe3,0x43,0x17,0x28,0x85,0x29,0xfd,0xb6,0x81,
	0x78,0x00,0xc0,0xe4,0xc1,0xb1,0x79,0x73,0x9e,0x91,0x5a,0x78,0x07,0x11,0x2a,0x24,
	0xd7,0xcc,0x22,0x35,0x2b,0xdf,0xbb,0xf7,0x62,0xdf,0x47,0x19,0xba,0x1f,0xbc,0x9a,
	0x5b,0x54,0xf5,0xa7,0x6a,0x39,0xcb,0x6b,0xe0,0xa5,0xb8,0x0a,0xa0,0x06,0x93,0xec,
	0xd8,0x03,0xbb,0x49,0x89,0xa8,0xfa,0x88,0x07,0x5e,0xc5,0x0f,0xad,0xb1,0xd1,0xa9,
	0x36,0x48,0x27,0x5f,0x40,0xa0,0x7c,0x2a,0x42,0x9c,0xdf,0x41,0x09,0x28,0xe0,0x05,
	0xad,0x51,0x44,0x96,0x98,0x34,0x7a,0x74,0xaa,0x9d,0xda,0x49,0x71,0xdd,0x6b,0xf0,
	0x74,0xf4,0x01,0xed,0x9d,0x42,0xd0,0x12,0x4a,0x63,0x7c,0xd0,0x6e,0x93,0x1f,0x9e,
	0xb6,0x40,0x93,0x23,0xa6,0x09,0xb7,0xac,0x2d,0x3e,0x79,0x8d,0x56,0x85,0x9f,0xc7,
	0x5a,0x58,0xa7,0x8f,0xdf,0x22,0x14,0x94,0x10,0x66,0xe6,0xd6,0xbb,0x2c,0x3f,0x05,
	0x63,0xb3,0x7a,0x64,0xf5,0x6d,0x52,0x82,0x82,0x3a,0x17,0x95,0x89,0xb1,0xb3,0x12,
	0x4d,0x21,0x64,0x4f,0x58,0xe9,0x4e,0x68,0xfa,0x5d,0x5e,0x80,0x49,0x78,0x70,0x4f,
	0x60,0xa3,0x59,0xca,0x3a,0xb0,0x04,0xb3,0xd2,0x34,0xae,0xac,0x7e,0xdc,0x17,0x16,
	0x81,0x02,0x03,0x01,0x00,0x01
};

const uint8_t RSA_PUBKEY_DER_HASH[] = {
	0x94,0xf9,0xaa,0x97,0xb2,0x64,0x8e,0xea,0xc8,0x20,0xcf,0xad,0x95,0x6c,0xcf,0x6a,
	0x2f,0xa2,0xee,0x7d,0x56,0xdc,0xe8,0x62,0xf0,0xea,0x31,0x2a,0x4d,0x2d,0x60,0xa6
};

const size_t RSA_PUBKEY_DER_HASH_LEN = sizeof (RSA_PUBKEY_DER_HASH);

const size_t RSA_PUBKEY_DER_LEN = sizeof (RSA_PUBKEY_DER);

const char RSA_PRIVKEY_PEM[] = "-----BEGIN RSA PRIVATE KEY-----\n"
	"MIIEowIBAAKCAQEAyUSMQGwfZI3Locc7FLSJ0SVXSl3VqiwfgCMj/MLa/HymrTWD"
	"q5IbcQW6dREe3WAq576RP+2q40MXKIUp/baBeADA5MGxeXOekVp4BxEqJNfMIjUr"
	"37v3Yt9HGbofvJpbVPWnajnLa+CluAqgBpPs2AO7SYmo+ogHXsUPrbHRqTZIJ19A"
	"oHwqQpzfQQko4AWtUUSWmDR6dKqd2klx3WvwdPQB7Z1C0BJKY3zQbpMfnrZAkyOm"
	"CbesLT55jVaFn8daWKeP3yIUlBBm5ta7LD8FY7N6ZPVtUoKCOheVibGzEk0hZE9Y"
	"6U5o+l1egEl4cE9go1nKOrAEs9I0rqx+3BcWgQIDAQABAoIBADP3H+MuR3i156Kw"
	"hv+UkZTPeFc6HQWf+M4jxJHpWZMhOAO2snVk9vLakMbTEc4Em29UU7pWye19kAgl"
	"Qa9BJPJv913Y6NK72HAdFKp2cxQqJ4mZgud0Z64+ieQJm1Id5IDuIDicDXqf+Qmo"
	"rKKmJNutMvkMsvVkk8qTRLYLGGAAr5bK86FAV7R58iNGy51C+udeJtdlhUcjG6nM"
	"uIJEL/DZN6HZIj1gAHz2dZdGRKZ306zxje9hvFBPkpEHDkEw+81dLpz/PyhKgFmB"
	"qn2/Y+x2QfpcMpbrUZp1s2g+Vcu4ZXCltOim+JVdp3BUEjqZFeK4kKCbkyQfCALN"
	"zgWflaUCgYEA7GKA1M7TQnM+84rZTqnYqLy/DVT52/QADvtGWoIKDHsfkuj76jnb"
	"xLDIrNixbKM2VmUoRJi3qbqYSJ3JO8+hf1PjWNm6QJ/zH6CSbN6jfGofYPrOsaS1"
	"k/SsSNtOpPui3Fl7shkI7iPR1z4j/JUtCOrpAjukqVrH1uYaJRWnqMcCgYEA2fgO"
	"wJl8WdNtQJzsGxWfxRP0FOGMwpc7qiKeS9rwz/HDe1ULjRt/OESIvYNlXn1/PzVz"
	"x7M9h3pCx41ie9dkIIv9qRtvip1S3wjfYSXVugaaGVCFGCGZqlRgkzLsCJiH2Tdh"
	"PJoFKY8tZdqBES99Sqq9612VTtsSn/X2PF9tTncCgYEA09JlDc2UY9xv0b9fgW0T"
	"uAkCzsiR6bbZgpNKdPpIVOzT20qpyzczpyqfeLvpKaeLnpmhHu8WzaJmqdOyqsUh"
	"O78JX+ojS5vJOlMiQyqyp19VZQr6wxcMm1vKMrNK4u6W/wu0m2Bxrywr8sw9ZS6s"
	"H2yZhiW6JQQzRXAGh6rDBasCgYAaKHvUv1a+DPKKk4p+QZ0X8KoVK3BSFgYyB8+J"
	"eO/3dKMqFO269HbTEN58J92tdlAkDM0lRSx4KsMC4cPU6ud4RHSfq8w6DWFZpN3x"
	"8bFxjsNFkHU4jSe82j1wzOaorW14Mv43YKCH+UfQdmWQ42sc39rE+Ukm2oGkssbn"
	"PeiHRwKBgGKHxEaJact7OIcY6dkFA0oMXUH68gafcM6Vvul8BvRxAtCWFnF5KWjS"
	"zyjuWs6eX6mvU4rN8DpVbxQDm2T8IlDodqV/8S6atN7YxrPNF6LHbYBcX5ojMwLu"
	"5T5qhvaScSW7dQfTZoJT8XLAj5aouKHRe0FIKHn06PLecMcOS1qb\n"
	"-----END RSA PRIVATE KEY-----\n";

const size_t RSA_PRIVKEY_PEM_LEN = sizeof (RSA_PRIVKEY_PEM);

const uint8_t RSA_PRIVKEY_DER[] = {
	0x30,0x82,0x04,0xa3,0x02,0x01,0x00,0x02,0x82,0x01,0x01,0x00,0xc9,0x44,0x8c,0x40,
	0x6c,0x1f,0x64,0x8d,0xcb,0xa1,0xc7,0x3b,0x14,0xb4,0x89,0xd1,0x25,0x57,0x4a,0x5d,
	0xd5,0xaa,0x2c,0x1f,0x80,0x23,0x23,0xfc,0xc2,0xda,0xfc,0x7c,0xa6,0xad,0x35,0x83,
	0xab,0x92,0x1b,0x71,0x05,0xba,0x75,0x11,0x1e,0xdd,0x60,0x2a,0xe7,0xbe,0x91,0x3f,
	0xed,0xaa,0xe3,0x43,0x17,0x28,0x85,0x29,0xfd,0xb6,0x81,0x78,0x00,0xc0,0xe4,0xc1,
	0xb1,0x79,0x73,0x9e,0x91,0x5a,0x78,0x07,0x11,0x2a,0x24,0xd7,0xcc,0x22,0x35,0x2b,
	0xdf,0xbb,0xf7,0x62,0xdf,0x47,0x19,0xba,0x1f,0xbc,0x9a,0x5b,0x54,0xf5,0xa7,0x6a,
	0x39,0xcb,0x6b,0xe0,0xa5,0xb8,0x0a,0xa0,0x06,0x93,0xec,0xd8,0x03,0xbb,0x49,0x89,
	0xa8,0xfa,0x88,0x07,0x5e,0xc5,0x0f,0xad,0xb1,0xd1,0xa9,0x36,0x48,0x27,0x5f,0x40,
	0xa0,0x7c,0x2a,0x42,0x9c,0xdf,0x41,0x09,0x28,0xe0,0x05,0xad,0x51,0x44,0x96,0x98,
	0x34,0x7a,0x74,0xaa,0x9d,0xda,0x49,0x71,0xdd,0x6b,0xf0,0x74,0xf4,0x01,0xed,0x9d,
	0x42,0xd0,0x12,0x4a,0x63,0x7c,0xd0,0x6e,0x93,0x1f,0x9e,0xb6,0x40,0x93,0x23,0xa6,
	0x09,0xb7,0xac,0x2d,0x3e,0x79,0x8d,0x56,0x85,0x9f,0xc7,0x5a,0x58,0xa7,0x8f,0xdf,
	0x22,0x14,0x94,0x10,0x66,0xe6,0xd6,0xbb,0x2c,0x3f,0x05,0x63,0xb3,0x7a,0x64,0xf5,
	0x6d,0x52,0x82,0x82,0x3a,0x17,0x95,0x89,0xb1,0xb3,0x12,0x4d,0x21,0x64,0x4f,0x58,
	0xe9,0x4e,0x68,0xfa,0x5d,0x5e,0x80,0x49,0x78,0x70,0x4f,0x60,0xa3,0x59,0xca,0x3a,
	0xb0,0x04,0xb3,0xd2,0x34,0xae,0xac,0x7e,0xdc,0x17,0x16,0x81,0x02,0x03,0x01,0x00,
	0x01,0x02,0x82,0x01,0x00,0x33,0xf7,0x1f,0xe3,0x2e,0x47,0x78,0xb5,0xe7,0xa2,0xb0,
	0x86,0xff,0x94,0x91,0x94,0xcf,0x78,0x57,0x3a,0x1d,0x05,0x9f,0xf8,0xce,0x23,0xc4,
	0x91,0xe9,0x59,0x93,0x21,0x38,0x03,0xb6,0xb2,0x75,0x64,0xf6,0xf2,0xda,0x90,0xc6,
	0xd3,0x11,0xce,0x04,0x9b,0x6f,0x54,0x53,0xba,0x56,0xc9,0xed,0x7d,0x90,0x08,0x25,
	0x41,0xaf,0x41,0x24,0xf2,0x6f,0xf7,0x5d,0xd8,0xe8,0xd2,0xbb,0xd8,0x70,0x1d,0x14,
	0xaa,0x76,0x73,0x14,0x2a,0x27,0x89,0x99,0x82,0xe7,0x74,0x67,0xae,0x3e,0x89,0xe4,
	0x09,0x9b,0x52,0x1d,0xe4,0x80,0xee,0x20,0x38,0x9c,0x0d,0x7a,0x9f,0xf9,0x09,0xa8,
	0xac,0xa2,0xa6,0x24,0xdb,0xad,0x32,0xf9,0x0c,0xb2,0xf5,0x64,0x93,0xca,0x93,0x44,
	0xb6,0x0b,0x18,0x60,0x00,0xaf,0x96,0xca,0xf3,0xa1,0x40,0x57,0xb4,0x79,0xf2,0x23,
	0x46,0xcb,0x9d,0x42,0xfa,0xe7,0x5e,0x26,0xd7,0x65,0x85,0x47,0x23,0x1b,0xa9,0xcc,
	0xb8,0x82,0x44,0x2f,0xf0,0xd9,0x37,0xa1,0xd9,0x22,0x3d,0x60,0x00,0x7c,0xf6,0x75,
	0x97,0x46,0x44,0xa6,0x77,0xd3,0xac,0xf1,0x8d,0xef,0x61,0xbc,0x50,0x4f,0x92,0x91,
	0x07,0x0e,0x41,0x30,0xfb,0xcd,0x5d,0x2e,0x9c,0xff,0x3f,0x28,0x4a,0x80,0x59,0x81,
	0xaa,0x7d,0xbf,0x63,0xec,0x76,0x41,0xfa,0x5c,0x32,0x96,0xeb,0x51,0x9a,0x75,0xb3,
	0x68,0x3e,0x55,0xcb,0xb8,0x65,0x70,0xa5,0xb4,0xe8,0xa6,0xf8,0x95,0x5d,0xa7,0x70,
	0x54,0x12,0x3a,0x99,0x15,0xe2,0xb8,0x90,0xa0,0x9b,0x93,0x24,0x1f,0x08,0x02,0xcd,
	0xce,0x05,0x9f,0x95,0xa5,0x02,0x81,0x81,0x00,0xec,0x62,0x80,0xd4,0xce,0xd3,0x42,
	0x73,0x3e,0xf3,0x8a,0xd9,0x4e,0xa9,0xd8,0xa8,0xbc,0xbf,0x0d,0x54,0xf9,0xdb,0xf4,
	0x00,0x0e,0xfb,0x46,0x5a,0x82,0x0a,0x0c,0x7b,0x1f,0x92,0xe8,0xfb,0xea,0x39,0xdb,
	0xc4,0xb0,0xc8,0xac,0xd8,0xb1,0x6c,0xa3,0x36,0x56,0x65,0x28,0x44,0x98,0xb7,0xa9,
	0xba,0x98,0x48,0x9d,0xc9,0x3b,0xcf,0xa1,0x7f,0x53,0xe3,0x58,0xd9,0xba,0x40,0x9f,
	0xf3,0x1f,0xa0,0x92,0x6c,0xde,0xa3,0x7c,0x6a,0x1f,0x60,0xfa,0xce,0xb1,0xa4,0xb5,
	0x93,0xf4,0xac,0x48,0xdb,0x4e,0xa4,0xfb,0xa2,0xdc,0x59,0x7b,0xb2,0x19,0x08,0xee,
	0x23,0xd1,0xd7,0x3e,0x23,0xfc,0x95,0x2d,0x08,0xea,0xe9,0x02,0x3b,0xa4,0xa9,0x5a,
	0xc7,0xd6,0xe6,0x1a,0x25,0x15,0xa7,0xa8,0xc7,0x02,0x81,0x81,0x00,0xd9,0xf8,0x0e,
	0xc0,0x99,0x7c,0x59,0xd3,0x6d,0x40,0x9c,0xec,0x1b,0x15,0x9f,0xc5,0x13,0xf4,0x14,
	0xe1,0x8c,0xc2,0x97,0x3b,0xaa,0x22,0x9e,0x4b,0xda,0xf0,0xcf,0xf1,0xc3,0x7b,0x55,
	0x0b,0x8d,0x1b,0x7f,0x38,0x44,0x88,0xbd,0x83,0x65,0x5e,0x7d,0x7f,0x3f,0x35,0x73,
	0xc7,0xb3,0x3d,0x87,0x7a,0x42,0xc7,0x8d,0x62,0x7b,0xd7,0x64,0x20,0x8b,0xfd,0xa9,
	0x1b,0x6f,0x8a,0x9d,0x52,0xdf,0x08,0xdf,0x61,0x25,0xd5,0xba,0x06,0x9a,0x19,0x50,
	0x85,0x18,0x21,0x99,0xaa,0x54,0x60,0x93,0x32,0xec,0x08,0x98,0x87,0xd9,0x37,0x61,
	0x3c,0x9a,0x05,0x29,0x8f,0x2d,0x65,0xda,0x81,0x11,0x2f,0x7d,0x4a,0xaa,0xbd,0xeb,
	0x5d,0x95,0x4e,0xdb,0x12,0x9f,0xf5,0xf6,0x3c,0x5f,0x6d,0x4e,0x77,0x02,0x81,0x81,
	0x00,0xd3,0xd2,0x65,0x0d,0xcd,0x94,0x63,0xdc,0x6f,0xd1,0xbf,0x5f,0x81,0x6d,0x13,
	0xb8,0x09,0x02,0xce,0xc8,0x91,0xe9,0xb6,0xd9,0x82,0x93,0x4a,0x74,0xfa,0x48,0x54,
	0xec,0xd3,0xdb,0x4a,0xa9,0xcb,0x37,0x33,0xa7,0x2a,0x9f,0x78,0xbb,0xe9,0x29,0xa7,
	0x8b,0x9e,0x99,0xa1,0x1e,0xef,0x16,0xcd,0xa2,0x66,0xa9,0xd3,0xb2,0xaa,0xc5,0x21,
	0x3b,0xbf,0x09,0x5f,0xea,0x23,0x4b,0x9b,0xc9,0x3a,0x53,0x22,0x43,0x2a,0xb2,0xa7,
	0x5f,0x55,0x65,0x0a,0xfa,0xc3,0x17,0x0c,0x9b,0x5b,0xca,0x32,0xb3,0x4a,0xe2,0xee,
	0x96,0xff,0x0b,0xb4,0x9b,0x60,0x71,0xaf,0x2c,0x2b,0xf2,0xcc,0x3d,0x65,0x2e,0xac,
	0x1f,0x6c,0x99,0x86,0x25,0xba,0x25,0x04,0x33,0x45,0x70,0x06,0x87,0xaa,0xc3,0x05,
	0xab,0x02,0x81,0x80,0x1a,0x28,0x7b,0xd4,0xbf,0x56,0xbe,0x0c,0xf2,0x8a,0x93,0x8a,
	0x7e,0x41,0x9d,0x17,0xf0,0xaa,0x15,0x2b,0x70,0x52,0x16,0x06,0x32,0x07,0xcf,0x89,
	0x78,0xef,0xf7,0x74,0xa3,0x2a,0x14,0xed,0xba,0xf4,0x76,0xd3,0x10,0xde,0x7c,0x27,
	0xdd,0xad,0x76,0x50,0x24,0x0c,0xcd,0x25,0x45,0x2c,0x78,0x2a,0xc3,0x02,0xe1,0xc3,
	0xd4,0xea,0xe7,0x78,0x44,0x74,0x9f,0xab,0xcc,0x3a,0x0d,0x61,0x59,0xa4,0xdd,0xf1,
	0xf1,0xb1,0x71,0x8e,0xc3,0x45,0x90,0x75,0x38,0x8d,0x27,0xbc,0xda,0x3d,0x70,0xcc,
	0xe6,0xa8,0xad,0x6d,0x78,0x32,0xfe,0x37,0x60,0xa0,0x87,0xf9,0x47,0xd0,0x76,0x65,
	0x90,0xe3,0x6b,0x1c,0xdf,0xda,0xc4,0xf9,0x49,0x26,0xda,0x81,0xa4,0xb2,0xc6,0xe7,
	0x3d,0xe8,0x87,0x47,0x02,0x81,0x80,0x62,0x87,0xc4,0x46,0x89,0x69,0xcb,0x7b,0x38,
	0x87,0x18,0xe9,0xd9,0x05,0x03,0x4a,0x0c,0x5d,0x41,0xfa,0xf2,0x06,0x9f,0x70,0xce,
	0x95,0xbe,0xe9,0x7c,0x06,0xf4,0x71,0x02,0xd0,0x96,0x16,0x71,0x79,0x29,0x68,0xd2,
	0xcf,0x28,0xee,0x5a,0xce,0x9e,0x5f,0xa9,0xaf,0x53,0x8a,0xcd,0xf0,0x3a,0x55,0x6f,
	0x14,0x03,0x9b,0x64,0xfc,0x22,0x50,0xe8,0x76,0xa5,0x7f,0xf1,0x2e,0x9a,0xb4,0xde,
	0xd8,0xc6,0xb3,0xcd,0x17,0xa2,0xc7,0x6d,0x80,0x5c,0x5f,0x9a,0x23,0x33,0x02,0xee,
	0xe5,0x3e,0x6a,0x86,0xf6,0x92,0x71,0x25,0xbb,0x75,0x07,0xd3,0x66,0x82,0x53,0xf1,
	0x72,0xc0,0x8f,0x96,0xa8,0xb8,0xa1,0xd1,0x7b,0x41,0x48,0x28,0x79,0xf4,0xe8,0xf2,
	0xde,0x70,0xc7,0x0e,0x4b,0x5a,0x9b
};

const size_t RSA_PRIVKEY_DER_LEN = sizeof (RSA_PRIVKEY_DER);

const uint8_t RSA_PRIVKEY_DER_HASH[] = {
	0x51,0x3f,0x46,0xd7,0xeb,0x73,0x4e,0x18,0x76,0x00,0xce,0xc3,0x64,0x2f,0xfd,0xd8,
	0xa8,0x84,0x83,0x00,0x91,0xfa,0x13,0x6f,0x9a,0x4e,0x22,0x0d,0x2d,0x61,0x1e,0xf1
};

const size_t RSA_PRIVKEY_DER_HASH_LEN = sizeof (RSA_PRIVKEY_DER_HASH);

/* Label used for OAEP encryption. */
const char *RSA_ENCRYPT_LABEL = "Test";
const size_t RSA_ENCRYPT_LABEL_LEN = 4;

/* The string "Test" encrypted. */
const uint8_t RSA_ENCRYPT_TEST[] = {
	0x5a,0x95,0x1d,0xd4,0x07,0x06,0xd4,0x90,0x21,0x10,0x87,0x83,0xa0,0x27,0xb4,0x56,
	0x66,0x0e,0x2f,0xc1,0x40,0xe2,0xbc,0x62,0x74,0x07,0x18,0x4d,0x9e,0x7d,0xd6,0xb6,
	0xfa,0x77,0x67,0xf7,0xe4,0x9c,0x8f,0xe5,0x9f,0x82,0x93,0xca,0x2f,0x46,0xa9,0x12,
	0x77,0x04,0x64,0xb2,0x55,0xda,0x72,0x87,0x51,0x0a,0x06,0x05,0x20,0x8e,0x62,0x34,
	0x6f,0xbe,0x92,0x5e,0xdb,0x75,0xd4,0xa7,0xcd,0xd9,0x06,0x28,0xf9,0xc7,0x2e,0x1c,
	0xc6,0xd3,0x61,0x60,0x64,0xd5,0x67,0x42,0x7f,0x99,0x91,0xa3,0x52,0x6e,0xb0,0x77,
	0xa8,0x4e,0xa8,0x91,0x51,0xde,0xa9,0x19,0x90,0xa1,0xa1,0x6f,0x33,0x3a,0x48,0x77,
	0xa2,0x3d,0x94,0xdd,0x1c,0x1e,0x75,0x55,0x99,0xc5,0xac,0xa6,0x66,0x32,0x7d,0x3e,
	0xc4,0x56,0xce,0x9a,0x6d,0x6e,0x64,0x78,0xec,0x97,0x54,0x27,0xd4,0x38,0x9b,0xec,
	0x2e,0x45,0xc0,0x3d,0x74,0x88,0x17,0x20,0x2a,0x34,0x49,0x75,0x61,0x81,0xb0,0x89,
	0xf9,0x9a,0x44,0x2d,0x5d,0x31,0xef,0x52,0x9e,0x47,0x2b,0x69,0x9b,0x99,0xe9,0xbe,
	0x6d,0x34,0x35,0x51,0x3e,0x37,0x9a,0x7e,0xf1,0x81,0x29,0x64,0x2d,0x16,0xc8,0x00,
	0xc3,0x10,0xbe,0x87,0x35,0xa1,0x05,0x99,0x1a,0x53,0xf9,0x14,0x67,0x5c,0xb2,0x23,
	0x31,0xe7,0xab,0x32,0x26,0x75,0xd3,0x6b,0xed,0xb5,0x12,0xfd,0xe8,0x9d,0x9b,0xab,
	0x7b,0x99,0x5a,0xbc,0x5e,0x1a,0x34,0xf1,0x9f,0x8a,0xdc,0xbd,0x14,0x4b,0xfe,0x04,
	0x2f,0x5a,0x0f,0x53,0x9d,0xa0,0x7e,0x3f,0x2a,0x88,0x18,0x98,0xd4,0x41,0x3d,0x1d
};

/* The string "Test" encrypted with the label "Test"
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_LABEL_ENCRYPT_TEST[] = {
	0x06,0x80,0x84,0x5c,0x1a,0x94,0xc2,0xf1,0x0a,0xb0,0x82,0x69,0xb7,0x13,0x52,0xd8,
	0xac,0x89,0xda,0xf7,0x7b,0x6e,0xa9,0xea,0xa0,0x1a,0x60,0x41,0x0d,0x4c,0x10,0x6a,
	0x8f,0x2e,0xaa,0x90,0x2e,0x70,0xb9,0xa4,0x09,0x2f,0x90,0xf4,0x1c,0x74,0xa6,0xc6,
	0xc7,0xbd,0x2e,0x2d,0x25,0xfc,0x71,0x1e,0x46,0xf7,0x39,0x3a,0xef,0x3d,0x7f,0x02,
	0xe0,0x52,0xee,0x4f,0x5a,0x44,0x50,0x43,0x5c,0x71,0x97,0xe6,0x67,0xb5,0x90,0x61,
	0x6e,0x5f,0x8b,0xfb,0x7b,0xcf,0x7f,0x62,0x60,0x50,0x84,0xf7,0xc5,0x53,0x76,0x18,
	0x5f,0x43,0xad,0x9d,0xf2,0xb4,0x5c,0xc6,0xa1,0x6d,0x09,0x71,0x16,0x17,0xb8,0x19,
	0xa9,0x56,0xf1,0x4d,0xe6,0x80,0x37,0xc2,0x3e,0xc6,0xe8,0x3e,0x9d,0x61,0x91,0x34,
	0xba,0xcc,0xb8,0x62,0xb7,0xff,0x4a,0x5c,0x3a,0xd0,0xcc,0x6d,0x74,0xa6,0x6a,0x37,
	0x49,0xea,0x76,0x8e,0xc9,0x85,0x48,0x19,0x19,0x19,0xc4,0x48,0x42,0x63,0x67,0xa2,
	0x44,0x92,0x0d,0x9d,0x14,0x56,0x8f,0xee,0x3c,0x1a,0x0b,0xc9,0x2c,0xf6,0x5b,0x36,
	0xe2,0x10,0x20,0x7e,0x90,0x36,0xf7,0x5f,0x39,0xe7,0xdc,0xb6,0x8b,0xd9,0x0c,0x22,
	0x32,0x6f,0x70,0x80,0x60,0x26,0xc4,0x58,0x4e,0x72,0xe6,0xa7,0x07,0x9d,0x73,0x17,
	0x5b,0x86,0x16,0x90,0x38,0xd2,0x35,0x2c,0x3d,0x8f,0xbf,0x52,0x73,0xee,0x8d,0xba,
	0x16,0x44,0x56,0x35,0xf0,0x36,0x6a,0x2e,0x45,0xb8,0x0b,0x08,0xae,0x63,0x6f,0xb1,
	0xa9,0x41,0xed,0x94,0xc3,0x82,0x0e,0xbc,0xd6,0x5a,0x00,0x1e,0x00,0xc8,0x82,0xe6
};

/* The string "Test" encrypted using SHA256 for hashing. */
const uint8_t RSA_SHA256_ENCRYPT_TEST[] = {
	0x79,0x13,0xb6,0xe6,0x2a,0x42,0x86,0xc0,0xa5,0xe9,0x33,0xbf,0xf6,0x18,0xc9,0x9a,
	0x9b,0x1d,0x73,0x66,0xe2,0x51,0x30,0x46,0x3f,0xc7,0xad,0x43,0xa7,0x67,0xb8,0x63,
	0x8f,0x97,0x54,0x7f,0x44,0x58,0xf9,0x12,0x51,0x0d,0x01,0xf1,0xc8,0x92,0x2a,0x0e,
	0xec,0x7e,0x40,0xd6,0xd4,0x4c,0x52,0xbd,0x96,0xd3,0x1e,0x5d,0xe3,0x19,0xe1,0x7c,
	0x64,0x79,0x0d,0x77,0x41,0xeb,0x62,0x3f,0xf0,0xc6,0x34,0xf0,0x89,0xf3,0xb2,0xf1,
	0xa8,0xeb,0xa6,0x65,0xbd,0x7e,0xde,0x1c,0xef,0xd1,0xa4,0x5b,0xd1,0xab,0x1c,0x2c,
	0x5e,0x33,0xc1,0xde,0xc7,0xc2,0xd5,0xe8,0xdf,0x89,0x1b,0x8f,0x25,0x61,0x68,0xef,
	0x9d,0x1b,0x63,0xae,0x13,0x2e,0xac,0x3c,0x07,0xa6,0x9d,0xf6,0x05,0x50,0x5b,0x3e,
	0x8a,0xcc,0x52,0x39,0xf3,0x68,0xc5,0xa9,0xa7,0x96,0xfb,0x27,0x81,0xfa,0xd6,0x12,
	0xff,0xee,0x79,0xc1,0xfb,0x8d,0x4f,0xa7,0xc8,0xc2,0xf8,0x61,0x0d,0xea,0x95,0xa6,
	0xa2,0x97,0xea,0x14,0xf6,0xdb,0xaa,0x74,0xef,0x08,0x9a,0xad,0xa9,0x7a,0x17,0x59,
	0xe5,0xaa,0x9d,0x62,0x1c,0xc9,0xf3,0xeb,0xbe,0xf7,0x7e,0xae,0x4a,0x64,0xf8,0x85,
	0x0b,0xe4,0x93,0x8c,0xe3,0xca,0x2d,0x94,0x25,0x6a,0x48,0xc0,0xfe,0xe7,0x82,0x51,
	0x81,0xf7,0x09,0x86,0x28,0x2f,0xe5,0xcb,0xdb,0xd3,0xb7,0x29,0x8b,0x1d,0x0a,0xf8,
	0x25,0x39,0xd2,0xf3,0x38,0x52,0x83,0xa9,0x62,0x2b,0x7b,0x88,0xbf,0xbe,0x14,0xed,
	0xa5,0x42,0x76,0x5b,0xd1,0xcf,0x26,0x1a,0xe9,0xc6,0x84,0x52,0xbd,0xc9,0xea,0x6f
};

/* The string "Test" encrypted with the label "Test" and SHA256 for hashing.
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_SHA256_LABEL_ENCRYPT_TEST[] = {
	0x78,0x5e,0xde,0xef,0x26,0x96,0xac,0x8e,0x49,0x32,0xa6,0x2e,0x93,0x34,0x2d,0xb1,
	0x9e,0xb6,0xb3,0x03,0x24,0xf4,0xb2,0x2d,0x69,0x9f,0xb6,0x66,0x0e,0xbc,0xbd,0xad,
	0x25,0x6b,0x47,0xed,0xf9,0x09,0xf2,0xa7,0x82,0x13,0xd0,0x56,0xdc,0x33,0xd8,0x28,
	0xbc,0xab,0xf7,0x04,0x8f,0x7b,0x88,0xc8,0x21,0x0a,0x0e,0x55,0x9e,0x4a,0x22,0x74,
	0x56,0x6f,0x96,0x44,0x40,0x16,0x93,0x68,0xc6,0xbc,0x6f,0x42,0x5a,0x77,0x4a,0x8b,
	0x83,0x3e,0xc9,0x0a,0x9f,0xdb,0x1d,0x72,0x4f,0x29,0xaa,0x59,0x6e,0x39,0x28,0x55,
	0x05,0x60,0x88,0xa4,0xcd,0xb0,0xb5,0xb5,0x42,0xd0,0xd0,0xf6,0x1a,0x63,0x39,0x1d,
	0x1c,0xed,0x30,0xa5,0x9c,0x89,0x34,0x61,0x07,0xce,0xef,0xb1,0x65,0x09,0x6e,0x6b,
	0x71,0x18,0x02,0x71,0x62,0xda,0xf5,0x32,0xf6,0x35,0x15,0x83,0xee,0x55,0xbe,0xba,
	0x80,0x19,0x9f,0xf6,0xb8,0xdb,0xf3,0x39,0xd5,0x00,0x8d,0x85,0xc8,0x59,0x17,0x17,
	0x1e,0x16,0x19,0xd1,0x29,0xed,0x28,0x36,0x25,0xa0,0x44,0x9d,0x54,0xff,0x5e,0x8d,
	0x16,0x15,0x3b,0x04,0xaa,0x67,0xee,0xd7,0x44,0xc4,0xb2,0x98,0x9c,0x2b,0x63,0x3e,
	0x1e,0x74,0x4d,0x59,0x29,0xc2,0xa1,0x95,0x13,0x8a,0xc6,0x06,0xd2,0x32,0xb4,0x42,
	0xaa,0xfc,0x69,0x66,0x27,0xd9,0xc7,0x68,0x09,0xc8,0x77,0x90,0x3a,0x07,0xbd,0x1f,
	0x4a,0xfc,0xb4,0x6a,0x23,0xb2,0x93,0x4d,0xba,0xab,0x10,0xde,0xc6,0x9a,0x2c,0x1d,
	0xa0,0xf3,0x97,0x92,0x7d,0x76,0x86,0x1f,0xf7,0x48,0x5a,0x8b,0x18,0x4a,0x52,0xd3
};

/* The SHA256 signature for the string "Test". */
const uint8_t RSA_SIGNATURE_TEST[] = {
	0xc3,0x18,0x02,0x46,0x08,0x2f,0xbe,0xd6,0x69,0x22,0x75,0xa9,0xc0,0xbe,0xd7,0xcc,
	0xc7,0xbb,0xeb,0xb1,0xca,0x87,0x6c,0xe2,0xbc,0x13,0x34,0x4e,0x38,0x3d,0x38,0x0e,
	0x7c,0xc3,0x6f,0x12,0x46,0x2c,0xf3,0x74,0x52,0x0e,0x11,0x78,0x5d,0x2a,0x07,0x09,
	0x0b,0x43,0x92,0xfc,0x97,0x7a,0x2e,0xb9,0xda,0x69,0x76,0xdf,0xb3,0xaf,0x38,0xb3,
	0xb7,0x21,0x50,0x10,0x93,0xf1,0xaf,0x0f,0xad,0xd6,0x72,0x09,0x2b,0x4c,0x24,0xba,
	0x3b,0xce,0xd9,0x2a,0x40,0x5a,0xa4,0xbf,0x4a,0xd7,0x70,0x74,0x45,0x1e,0x13,0xaf,
	0x93,0x6f,0x56,0x6b,0x85,0xe0,0x1c,0xe1,0x7d,0x46,0x89,0x03,0x76,0x91,0x5e,0x5b,
	0xd3,0x6c,0x5a,0x00,0x55,0xf2,0x8d,0xf7,0x9e,0x6e,0xcf,0x72,0x95,0xef,0xe3,0x1a,
	0xe3,0xd8,0x77,0xb9,0xc7,0x64,0x1b,0x32,0xdc,0xe5,0xb3,0x86,0x20,0x43,0xf3,0x34,
	0xae,0x79,0x4c,0xe8,0xcf,0x33,0xc7,0xd2,0xcf,0x7f,0x75,0x95,0x91,0xc5,0x42,0x18,
	0xdc,0xda,0x99,0x0e,0xf7,0xd1,0x9d,0x39,0x03,0xe0,0xbb,0x18,0x82,0xc4,0x7c,0x30,
	0xdd,0x5d,0xc9,0x50,0xb2,0x61,0x04,0x0d,0xc9,0x1c,0x71,0x15,0x58,0xd7,0x26,0x70,
	0x1f,0xab,0x7a,0x72,0x6e,0xcc,0xc4,0x10,0x79,0x84,0xe5,0xb8,0xa1,0xfd,0xaf,0xe8,
	0x05,0x12,0xd7,0xb6,0x51,0xe2,0xbf,0x4a,0xf2,0x66,0x6e,0x13,0x71,0x9c,0x30,0x26,
	0x02,0x98,0x75,0xfe,0x6e,0x10,0xa9,0xdb,0x52,0x2b,0x29,0x25,0x92,0xa4,0x2f,0xe8,
	0x49,0x46,0x90,0x4d,0xd0,0x13,0x4b,0x3b,0x44,0x6b,0x7c,0x41,0xff,0xfd,0x3c,0x7b
};

/* The string "Test2" encrypted. */
const uint8_t RSA_ENCRYPT_TEST2[] = {
	0x8a,0x25,0x0a,0x51,0xf3,0x3b,0xd0,0x0f,0xdb,0x42,0xbc,0x47,0x9e,0x58,0x01,0xc6,
	0x98,0x8b,0xc5,0xf8,0x2e,0xbc,0x13,0x48,0xb7,0x82,0x8c,0x02,0x6a,0x22,0xcf,0x11,
	0x74,0x2c,0xc9,0x59,0x02,0x49,0xfa,0xce,0xfa,0x6b,0x8e,0x84,0x5d,0xea,0xfe,0x2e,
	0x1e,0x06,0x45,0xc4,0xf4,0x19,0x84,0xd8,0x9e,0xf9,0xd3,0xde,0x86,0x57,0xb6,0x5b,
	0x93,0xdc,0x80,0xad,0x9c,0x49,0x37,0xd0,0x2b,0xea,0x65,0xbd,0x43,0x0c,0xcb,0xfa,
	0xc1,0x3c,0x8b,0x40,0x02,0x09,0xba,0x5e,0x1d,0x6b,0x08,0x18,0xf4,0x5d,0x56,0x00,
	0xeb,0x93,0x7c,0xb2,0x27,0x76,0x50,0xfc,0x0b,0xdc,0x69,0x0c,0xba,0xd2,0x82,0x42,
	0xaf,0x13,0x9f,0x1d,0x11,0x52,0xfb,0xf1,0x21,0xc2,0x97,0x85,0x37,0xbe,0x32,0x52,
	0xb9,0x58,0xc2,0x2d,0x38,0x9e,0x8b,0x30,0xe7,0x3b,0xa8,0xc9,0x8d,0x9a,0x43,0x67,
	0x12,0x0a,0x88,0x26,0x43,0xb7,0xe7,0xcb,0x83,0x8c,0xa4,0x6e,0x65,0xac,0x97,0x5e,
	0xbf,0x83,0x61,0xc9,0xbb,0x12,0x75,0x6a,0xc3,0xca,0x62,0x39,0x8e,0x49,0xe3,0x5f,
	0x12,0xf3,0xd6,0x38,0xe9,0xbc,0x84,0xeb,0x89,0x31,0x37,0x83,0x3c,0x98,0x8f,0x1a,
	0x84,0xab,0x69,0x9f,0x4f,0xda,0xaf,0x2f,0xe9,0x33,0xb2,0xb4,0xca,0x17,0x37,0xca,
	0x0b,0x5e,0x99,0x86,0x21,0x6d,0x99,0x9c,0xc0,0xfa,0x30,0x4d,0x62,0x67,0x1e,0x29,
	0x66,0x83,0xd4,0xb0,0xdc,0x74,0x87,0x86,0xaa,0x81,0x94,0x9d,0xe0,0xcf,0xe6,0x28,
	0xe8,0x00,0x84,0x52,0x8d,0x27,0x2d,0x22,0xdc,0x7c,0xd9,0xb4,0x96,0x74,0x6e,0xcb
};

/* The string "Test2" encrypted with the label "Test"
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_LABEL_ENCRYPT_TEST2[] = {
	0x5b,0x39,0x05,0x4b,0x91,0xad,0xec,0xa9,0x01,0xf0,0x1c,0xd5,0x4c,0xf3,0xd3,0x2e,
	0xf1,0x9a,0x0d,0xf9,0xeb,0x1a,0x1b,0x5e,0xe5,0x9d,0xbb,0x31,0x32,0x26,0x5c,0x87,
	0xee,0x4a,0x60,0xa4,0xa6,0x7e,0xf3,0x01,0xc1,0x3c,0x99,0xc6,0x4c,0x49,0x59,0x83,
	0x4e,0x6b,0xbf,0x88,0x9a,0xd8,0x48,0x57,0xd5,0x8d,0x5c,0x3c,0xd2,0x30,0x8e,0xca,
	0xd5,0x30,0xe4,0x97,0x95,0x19,0x9a,0x3f,0x59,0x55,0xbd,0xb8,0xab,0x0d,0x09,0x61,
	0x1c,0x2f,0xd3,0x66,0x2d,0xa8,0x6f,0x16,0x1e,0x7e,0xe3,0x71,0xba,0xb7,0x58,0x13,
	0x83,0xa3,0x26,0x9d,0xb3,0xe4,0xcd,0x72,0x2b,0x9f,0xba,0xe3,0x28,0x5f,0x18,0x50,
	0x00,0xed,0x50,0x8f,0xc9,0xa2,0xca,0x1e,0x9e,0xa7,0x68,0xc5,0x2b,0x4d,0xa8,0x25,
	0x07,0x5a,0x17,0xdf,0x0e,0xbf,0x17,0x07,0x43,0x7e,0xea,0xd6,0x6b,0x76,0xb6,0x57,
	0x99,0x3d,0x8e,0xc6,0x2b,0x3a,0x08,0xa5,0xad,0x3f,0xda,0x0a,0x98,0xa8,0xf9,0x61,
	0x0b,0x63,0xaa,0xa0,0xfa,0xac,0xdd,0x6c,0x34,0x1a,0xcd,0xfe,0x2e,0x17,0x66,0x91,
	0x2a,0xdc,0x26,0x4d,0xe9,0x23,0x70,0x8f,0xde,0x0d,0xf1,0xb3,0xee,0x38,0xff,0xe3,
	0xbf,0x1e,0x3d,0x38,0xc1,0xc0,0x00,0x28,0x27,0x5e,0x68,0x9b,0x61,0xa6,0x54,0xc4,
	0x64,0x11,0xef,0x09,0xe8,0x88,0xa1,0x3c,0x93,0xbb,0xb2,0xf4,0x23,0x15,0xae,0xf4,
	0x02,0xa4,0x80,0x90,0x11,0xec,0x3f,0xfc,0xdd,0xe9,0x2c,0x09,0x40,0x47,0xd5,0xbc,
	0x85,0x8c,0x09,0x37,0xbb,0xc8,0xbc,0x03,0x08,0xd9,0x54,0x1d,0x4c,0x57,0xee,0x5e
};

/* The string "Test2" encrypted using SHA256 for hashing. */
const uint8_t RSA_SHA256_ENCRYPT_TEST2[] = {
	0x93,0x10,0x18,0xb3,0xed,0xf7,0xde,0xa7,0x26,0x58,0x65,0xf7,0x0d,0x8c,0x25,0x73,
	0x1e,0x2a,0x7b,0x96,0x24,0xed,0xd7,0xe6,0xd3,0xeb,0xd9,0x4c,0xfc,0x8c,0x5f,0x69,
	0xbe,0x0a,0x0d,0xf4,0x25,0x06,0xc2,0xe5,0xc3,0x6f,0xa8,0x97,0x5c,0x1b,0xc5,0x53,
	0x17,0x5b,0x97,0x97,0x84,0xfe,0xf4,0x32,0x15,0x72,0x27,0x4e,0x43,0xfe,0x00,0x19,
	0x95,0x56,0x72,0x70,0x0e,0x46,0xa1,0xaf,0x9e,0x9a,0xca,0x6a,0xf7,0x76,0xca,0x26,
	0x95,0x1e,0x82,0x49,0x15,0x54,0xf7,0x5e,0x60,0xe9,0xd3,0x14,0x48,0x5b,0x51,0x46,
	0x48,0x07,0x93,0xcb,0x44,0xb2,0x83,0x46,0x6f,0x05,0xea,0x1b,0xb7,0x5e,0xa7,0x16,
	0x1c,0xe4,0x61,0xa8,0xd2,0x1d,0xe4,0x00,0x84,0xeb,0x81,0x0c,0xf7,0xf7,0xc6,0x5d,
	0x59,0x04,0x0a,0xc4,0x2d,0x84,0xfd,0xd9,0x0a,0x91,0xcb,0x06,0xf3,0x1e,0x97,0x29,
	0xd2,0x19,0xe0,0xf5,0xf5,0xec,0xc5,0xcf,0xb3,0x35,0xc4,0x63,0x3b,0xd2,0x3e,0xe9,
	0x21,0x67,0x85,0x43,0xe8,0x2f,0x8f,0xe2,0xa5,0x4a,0x84,0x77,0xee,0x15,0xa1,0x66,
	0x30,0xa6,0xde,0xb2,0x3c,0x04,0xa6,0x6a,0x9e,0x41,0xe6,0x81,0x6e,0x68,0xf0,0xef,
	0xdd,0xc7,0x49,0x43,0xcb,0xe9,0xc5,0xcf,0x4f,0x7e,0x91,0x18,0xbc,0x23,0xb7,0x7c,
	0xe6,0x9a,0x15,0x38,0x82,0x7d,0x03,0x81,0x62,0xef,0x27,0x6c,0x42,0xd2,0x05,0xf3,
	0x1b,0xaf,0x75,0x74,0x16,0x7f,0xf9,0x58,0x1c,0x71,0xda,0x57,0x43,0xfd,0xd8,0x37,
	0x28,0x7b,0x91,0xe2,0x97,0x59,0x79,0x52,0x70,0x09,0x9f,0x6e,0xc2,0x55,0xcc,0xf1
};

/* The string "Test2" encrypted with the label "Test" and SHA256 for hashing.
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_SHA256_LABEL_ENCRYPT_TEST2[] = {
	0x11,0x00,0x73,0x6d,0xee,0xd0,0x9b,0xb5,0x1e,0x8d,0x8a,0x4b,0x98,0x7d,0xe2,0xfe,
	0xfe,0xff,0x86,0x27,0x6f,0x93,0xcd,0x8b,0xac,0x00,0x03,0x53,0x83,0x5c,0xb7,0xf1,
	0x57,0x19,0x09,0x23,0x0a,0xed,0xb9,0x9e,0x25,0x47,0xdc,0xa7,0x4e,0x68,0x4f,0xc3,
	0xb8,0xd2,0x3b,0xfb,0x53,0xba,0x37,0x0d,0x3a,0xc6,0xab,0x64,0x6f,0x88,0xf4,0xa5,
	0x10,0xf8,0xb8,0xa1,0xdd,0x13,0xc6,0xcf,0x5d,0xe3,0x17,0xeb,0xc1,0xda,0x72,0xc9,
	0x29,0x67,0xe7,0xbd,0xd8,0x85,0xd4,0x64,0x19,0x60,0xe7,0xc9,0x9e,0x8a,0xba,0xa0,
	0x1c,0x7f,0xe6,0x09,0xcc,0x8e,0x76,0x24,0x51,0xb4,0x68,0x80,0x38,0x48,0x56,0xb2,
	0xc0,0x29,0x80,0xe0,0xaa,0xab,0xa7,0xe4,0xe5,0x01,0x0e,0x70,0x6f,0xa8,0x6b,0x6c,
	0x6b,0xed,0xac,0x0f,0x16,0x9e,0x8c,0xf1,0x19,0xf0,0xa6,0x03,0x73,0x84,0x82,0x49,
	0x6f,0xaa,0x9c,0xa5,0xbf,0x46,0x1a,0x86,0xae,0x15,0xfc,0xa5,0xf9,0x65,0xca,0xd2,
	0x1a,0x17,0x20,0x1a,0x22,0x68,0x93,0x96,0x89,0xd0,0xf7,0x59,0x1e,0x1f,0x4f,0xd9,
	0x00,0x38,0x89,0x75,0x2b,0x14,0x61,0x08,0xe0,0xff,0x14,0x94,0x6d,0x3f,0x77,0xdd,
	0x2e,0x0c,0xeb,0xec,0x72,0x46,0x88,0xf7,0x63,0x30,0x53,0x09,0xeb,0x90,0x87,0x7f,
	0x2d,0x7b,0x28,0xfd,0xee,0x8c,0xeb,0xef,0xa3,0x79,0xda,0x89,0x6e,0x57,0x6f,0x21,
	0x36,0xcb,0x59,0x84,0x99,0x38,0xad,0x82,0x68,0xf2,0xce,0x2e,0x28,0xf3,0xb4,0x3b,
	0x38,0xd0,0x52,0x0c,0xef,0x92,0x17,0x2a,0x9c,0x76,0x2f,0x2c,0x30,0xf8,0x95,0xcd
};

/* The SHA256 signature for the string "Test2". */
const uint8_t RSA_SIGNATURE_TEST2[] = {
	0x43,0x6b,0xef,0x3e,0xe7,0x9f,0xb7,0x92,0x12,0x30,0x6a,0xdc,0xef,0xa9,0x3a,0x36,
	0xf2,0xf1,0xd9,0x17,0xed,0x01,0xbd,0xe1,0x69,0xbd,0x5d,0x7d,0x5c,0xb2,0xb0,0x21,
	0x86,0x5c,0x86,0x36,0x26,0xa2,0xc7,0xd3,0x28,0xae,0x8d,0x25,0xf0,0xcc,0x43,0x9f,
	0x21,0xb3,0xc1,0xad,0xaa,0xe2,0x2f,0xfb,0xa9,0x79,0x03,0xc4,0x67,0xe0,0xfe,0x47,
	0xbd,0x6b,0x1f,0xcc,0x72,0x71,0x33,0x84,0x81,0xbe,0x13,0xb2,0xff,0x2b,0xe3,0x8b,
	0xad,0xcc,0x80,0xb2,0x4b,0x4a,0x40,0xf2,0xbd,0xae,0x76,0xf5,0x5f,0x8a,0xe6,0xda,
	0xd7,0xfc,0x0c,0xf0,0x7b,0x37,0xc7,0xaf,0xc2,0x9b,0xdb,0x66,0xbc,0xb6,0x07,0xce,
	0x27,0x05,0xaf,0x38,0xb7,0xfe,0x8d,0x0c,0xee,0x2c,0x35,0x91,0xd9,0x60,0xbe,0xee,
	0xe7,0x6f,0x9b,0x98,0xb8,0x91,0xea,0x1b,0x73,0xe5,0x66,0xe7,0xaa,0xc7,0x72,0x5d,
	0x77,0x42,0x92,0xaf,0x2c,0xf4,0xca,0x14,0x3b,0x69,0x4b,0xb3,0x8f,0x9e,0x93,0x95,
	0xf4,0x6c,0xc3,0xed,0x51,0x20,0xf3,0x41,0x7c,0x6f,0xd1,0x2e,0xf8,0xb9,0x17,0x5a,
	0xc2,0x79,0x4c,0xac,0x0c,0x1b,0xc2,0x73,0x60,0xd5,0xdd,0x29,0xce,0xe3,0xa7,0x80,
	0xd8,0xc2,0x4f,0x5f,0xe8,0x84,0xb1,0x20,0x7c,0xb8,0x78,0x08,0xfb,0xa0,0x5b,0x3a,
	0xf4,0x23,0xf5,0xee,0xfa,0x8a,0x21,0x0a,0x9c,0xdc,0xdd,0x90,0xb7,0xa1,0x79,0x40,
	0xd7,0xf2,0xdc,0xf3,0x22,0xbd,0xf4,0x39,0xb1,0x79,0xe0,0x30,0xa5,0x40,0xb3,0x9d,
	0xed,0xb4,0x20,0x38,0x94,0x72,0xcc,0xa6,0x73,0x7b,0x5d,0x72,0x13,0xad,0xd9,0xee
};

/* The string "Nope" encrypted. */
const uint8_t RSA_ENCRYPT_NOPE[] = {
	0x56,0x4f,0xb8,0x52,0xd6,0xeb,0xcb,0x3d,0x62,0x0e,0xc0,0x41,0xb8,0x60,0xa7,0x95,
	0xc6,0x9b,0xc3,0xb3,0xc7,0x3f,0x8b,0x41,0xa3,0xbf,0x58,0x01,0xcc,0xe2,0xb5,0x04,
	0xcc,0x3f,0x44,0x09,0x08,0x93,0x52,0xb0,0x0b,0x1d,0x73,0x3e,0xcb,0xe0,0xc5,0x6a,
	0x65,0xb7,0xf4,0x1e,0x17,0xb5,0x65,0xfa,0x74,0x05,0x3d,0x12,0xee,0x0f,0xf7,0xf7,
	0x27,0x1e,0x4a,0x77,0x5f,0x42,0x1e,0x98,0xc6,0x18,0x55,0xcf,0x8c,0x0e,0xa0,0x70,
	0xa8,0xb9,0xb3,0x1c,0x73,0x71,0x2e,0xea,0x23,0x38,0x4c,0x38,0xec,0x26,0x40,0xe6,
	0xb5,0xab,0x63,0x56,0x01,0x7c,0xc8,0x77,0xe7,0xca,0xc6,0x7b,0x66,0xdb,0x01,0xb1,
	0x95,0x5a,0xa1,0x05,0x88,0xbf,0xb0,0x31,0x38,0x6d,0x8a,0x97,0xd7,0x39,0xd7,0xc2,
	0x7f,0x4a,0x9a,0xb9,0x28,0xab,0x57,0xc0,0xc9,0x13,0xae,0x3d,0x91,0x40,0x0c,0x67,
	0x05,0x49,0x84,0x6f,0x94,0x57,0x90,0x98,0xeb,0x58,0x9a,0x96,0xc0,0xda,0x3d,0x6d,
	0x19,0xa3,0x35,0x7c,0x0a,0x87,0xf0,0xbb,0xe0,0x32,0xa2,0x69,0x66,0xfa,0x21,0x79,
	0x8e,0xb2,0xc9,0x00,0x7f,0xb4,0xc8,0x31,0x7f,0x1e,0x5d,0xd1,0x86,0xe2,0xe0,0xb0,
	0x2e,0xc4,0xce,0x01,0x62,0xd5,0xc7,0xb9,0xea,0x19,0x6c,0x7f,0x07,0xb4,0x92,0xb8,
	0x7b,0x6c,0xd0,0x2b,0x94,0x05,0x85,0xbe,0xc4,0x99,0x46,0x3a,0xed,0xcb,0xf0,0xfc,
	0xb0,0x11,0xd5,0xd5,0x56,0xe2,0x07,0x96,0xac,0x54,0xd8,0x6d,0xa8,0x80,0xba,0x91,
	0xec,0xf4,0xad,0xbb,0xeb,0x8d,0x7f,0xd7,0x3d,0x30,0x56,0x8d,0x5a,0xf9,0x6c,0xbc
};

/* The string "Nope" encrypted with the label "Test"
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_LABEL_ENCRYPT_NOPE[] = {
	0x41,0xd6,0x77,0x4e,0x38,0x3e,0xad,0xe5,0x97,0xca,0x10,0x83,0x7a,0x1b,0x0d,0xd2,
	0x78,0xbd,0xd9,0x6f,0x4c,0xb7,0xd0,0xe1,0x3f,0x62,0x28,0xf3,0xc8,0xc1,0x05,0xf5,
	0x4f,0x70,0x0d,0xb3,0xd0,0x85,0xca,0xf2,0x02,0x02,0xe3,0x1a,0x58,0x06,0xdb,0x21,
	0xb5,0x9a,0xd9,0x5e,0xf2,0x5f,0x2e,0x72,0xa2,0xe6,0x20,0x85,0xdb,0xde,0x7d,0x5b,
	0x30,0xcc,0x4b,0x40,0xae,0x79,0xe3,0x63,0x1b,0x36,0x41,0xbe,0x7c,0x24,0x32,0x37,
	0x41,0xed,0x07,0x0d,0x53,0xd4,0xeb,0xfb,0xc3,0x45,0xf0,0xc7,0x90,0x8b,0xaa,0x89,
	0x6c,0x6a,0x61,0xbe,0xc3,0x5a,0x29,0x67,0xce,0x14,0x94,0xc3,0x19,0x07,0xb3,0x43,
	0x71,0x0f,0x4e,0x18,0x39,0x1a,0x01,0xa1,0x01,0x93,0xe6,0xc4,0x3e,0x79,0x04,0x1c,
	0x44,0xc7,0xd6,0x64,0xf8,0xcb,0xa8,0x93,0x86,0x33,0xce,0x8f,0xf0,0x01,0x5a,0x84,
	0x06,0xc7,0x67,0x5d,0x8e,0x91,0xcf,0x48,0xbd,0x2e,0x7b,0x9a,0xe3,0x32,0x55,0xf8,
	0x59,0xc3,0xe0,0x5e,0x93,0x69,0xe6,0xb2,0xea,0xb7,0x29,0x84,0xbc,0xd3,0x0b,0x76,
	0x64,0x71,0x4d,0x71,0xb2,0xfb,0xf3,0xfb,0xcb,0xb8,0xa5,0x81,0x74,0x7a,0xe4,0x19,
	0xa4,0x64,0xd1,0x6c,0x20,0xd1,0xfa,0x85,0x83,0x7a,0xb5,0xa8,0xaf,0xc3,0xba,0x1a,
	0x94,0x38,0x15,0x97,0x17,0xb3,0xdc,0x69,0xa0,0x3d,0xae,0xef,0x38,0xb6,0x1f,0x8e,
	0xe5,0x8a,0x70,0xb7,0x72,0x1e,0xb9,0x23,0xb9,0x7d,0x31,0x77,0xa7,0xeb,0x2c,0x08,
	0x15,0xaf,0xca,0x21,0xaf,0xd4,0xeb,0x6b,0xfd,0x58,0x0d,0xbf,0xab,0x4d,0xcd,0xa0
};

/* The string "Nope" encrypted using SHA256 for hashing. */
const uint8_t RSA_SHA256_ENCRYPT_NOPE[] = {
	0x2a,0xd4,0x28,0xaa,0x56,0xfd,0xb6,0xd2,0x92,0xe7,0xa1,0x46,0xbb,0x01,0x91,0x5e,
	0x45,0x48,0x4c,0xbd,0xc2,0x99,0x72,0xe5,0x15,0x75,0x62,0xbe,0xc7,0xd2,0x3e,0xdc,
	0xe9,0x9e,0xd7,0xe9,0xe8,0x8e,0x34,0xcb,0x1a,0x04,0xd6,0x18,0x96,0x7f,0xae,0x29,
	0x99,0x33,0x15,0x4d,0x94,0xd5,0x75,0xb0,0x76,0x86,0xd5,0xff,0x2b,0xb9,0x89,0x84,
	0x7e,0xe5,0x26,0x3c,0x22,0xa6,0x1d,0x54,0xd9,0x0d,0x38,0x2a,0xeb,0xe3,0xf2,0x1b,
	0x4d,0x48,0x66,0x12,0x37,0x6e,0xda,0xd9,0x19,0xbb,0x25,0xf1,0x4a,0xf5,0x9a,0xa1,
	0x34,0xfb,0xd2,0x66,0xc7,0x68,0xc7,0x9b,0x63,0xf7,0x76,0xcc,0x7d,0x2e,0xd0,0xff,
	0xa7,0x1b,0x72,0x26,0x45,0xf5,0xcd,0xbb,0x61,0xbf,0xb9,0xf8,0x2d,0xe9,0x66,0x06,
	0xd7,0x39,0x17,0x68,0x32,0xbf,0x9f,0x5f,0x22,0xe1,0x0f,0x34,0x88,0xc4,0x25,0xeb,
	0x81,0xa0,0x8b,0xdb,0x33,0x65,0x2e,0xd3,0xea,0x6f,0xa5,0xb9,0x61,0xde,0x23,0x44,
	0x66,0x99,0x09,0xb7,0x96,0xc7,0x87,0x1f,0x84,0xf6,0x01,0x45,0xb0,0xe0,0x0b,0xdc,
	0xf9,0x09,0xe6,0xc6,0x95,0xd3,0x13,0xff,0x9f,0x8e,0xde,0xcd,0x61,0x18,0x4c,0x5f,
	0x78,0xea,0xb1,0x21,0x44,0x95,0x96,0xeb,0xbb,0xd6,0x95,0xf4,0xcb,0xdc,0x7c,0xf0,
	0xa8,0x26,0x77,0x92,0x4d,0xa5,0xb0,0x48,0x3b,0xd9,0x8f,0x43,0x74,0x64,0xaa,0x07,
	0x6b,0x22,0xb1,0xef,0xa6,0x17,0xa8,0x5c,0x62,0x8f,0x20,0x69,0xbb,0x81,0x5c,0x2a,
	0xf0,0x67,0x15,0x5e,0x0d,0x29,0x87,0xfe,0xbb,0xda,0x79,0xf6,0xce,0xad,0x94,0x16
};

/* The string "Nope" encrypted with the label "Test" and SHA256 for hashing.
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_SHA256_LABEL_ENCRYPT_NOPE[] = {
	0x49,0x43,0x4c,0x88,0xb3,0x60,0xab,0x7f,0x4b,0xf7,0x5a,0xff,0x99,0xa0,0x10,0x0e,
	0x85,0x7b,0xb2,0x68,0x81,0x08,0xe2,0x9f,0x4e,0xb1,0x50,0xd5,0x5b,0x55,0x78,0xf6,
	0x2b,0xc5,0x91,0x34,0x99,0xb9,0x52,0x73,0xfb,0xa6,0x37,0xdb,0x2f,0x68,0x86,0x22,
	0x85,0x23,0x03,0x2e,0x09,0x24,0x77,0x29,0xe7,0x84,0x36,0x86,0x13,0x96,0x37,0x52,
	0x18,0x48,0x91,0xb1,0xd2,0x0c,0x2f,0xe9,0xf9,0x03,0xb5,0xaf,0x80,0xbd,0x67,0xf6,
	0xa2,0xcc,0xc0,0x10,0x80,0x82,0x81,0xdd,0x90,0xac,0x0a,0x81,0xbb,0xb5,0x13,0x6a,
	0x61,0x9d,0xf3,0x06,0x89,0x26,0x04,0x1f,0x68,0x5b,0x72,0x9a,0x29,0xe4,0x07,0x4f,
	0xf9,0xa5,0x20,0x95,0xa1,0x80,0x25,0xa7,0xed,0x14,0x47,0x9e,0xd4,0xda,0x42,0x69,
	0xa8,0xf5,0xe2,0x3e,0x8b,0x65,0x78,0x6d,0x58,0x78,0xa3,0xda,0x17,0xe8,0x3e,0xeb,
	0x3e,0x44,0x07,0x47,0x9b,0x4f,0x65,0x4b,0x8e,0x8c,0x2b,0x3a,0xd3,0xa4,0xd0,0xbe,
	0x63,0xbe,0x01,0x38,0x8d,0xfe,0x71,0xa4,0xf9,0x72,0xa0,0x50,0x12,0xd1,0x8b,0x9a,
	0x36,0xd7,0x3c,0xd6,0x0f,0x94,0x35,0xea,0xe8,0xe2,0x91,0x73,0x69,0x78,0xd3,0x6b,
	0x4d,0x1c,0xe8,0x90,0x02,0x77,0x74,0x01,0xc3,0xd7,0x26,0xd7,0x6a,0x68,0x0f,0x14,
	0x4a,0xf4,0x45,0x5f,0x45,0xfd,0x70,0x78,0x7b,0x04,0xaf,0x39,0xec,0x90,0xc9,0x2f,
	0x00,0x58,0xda,0xbf,0x67,0x81,0x1c,0x22,0x8e,0xb3,0xa5,0xc6,0x2c,0x91,0x83,0x66,
	0xec,0xc0,0x91,0xa8,0x3b,0x57,0x46,0xae,0x06,0xd1,0x5f,0xc4,0xc7,0x29,0x86,0xe9
};

/* The SHA256 signature for the string "Nope". */
const uint8_t RSA_SIGNATURE_NOPE[] = {
	0x21,0xa9,0xd8,0x36,0x1b,0x5d,0xfa,0x10,0xfa,0xff,0xd1,0x8a,0x19,0x6f,0xa1,0x89,
	0x2f,0x29,0x73,0x81,0xe3,0xad,0xbf,0x83,0xc3,0x00,0xb7,0xc7,0xc4,0x39,0xdb,0x16,
	0x4e,0x48,0xae,0x3a,0x13,0xae,0xee,0xb9,0xf5,0xe5,0x27,0xce,0x8a,0xa4,0x57,0x7d,
	0x54,0x60,0xd4,0x85,0xeb,0xfe,0x99,0x79,0x0e,0x4c,0xb6,0x9a,0x13,0x97,0x13,0x29,
	0x65,0x43,0x11,0xc0,0x01,0x36,0xd1,0xa5,0xe1,0xb5,0x9c,0x16,0xb2,0xe3,0xf8,0x11,
	0x24,0x0a,0x82,0xe7,0x47,0xd5,0x4a,0x5b,0x6c,0xf7,0xdd,0x30,0xb4,0x58,0x6f,0x61,
	0xb7,0xef,0x39,0xc5,0xd8,0xed,0x93,0x3c,0x43,0x0e,0xb8,0x80,0x50,0x7a,0xc2,0xa0,
	0x3d,0x58,0x2c,0x1a,0xf7,0x5e,0x68,0x14,0x9e,0x9f,0xd4,0x63,0x61,0x63,0x02,0x74,
	0x7d,0xc1,0xb1,0xd6,0x1a,0xbb,0xa8,0x13,0x15,0xe0,0x1b,0x4b,0xc6,0xee,0x79,0xa7,
	0xc5,0x96,0xee,0x0e,0x1d,0xe7,0xec,0x52,0x07,0xc9,0x96,0xa0,0xb7,0x9e,0x12,0xd7,
	0x44,0xfb,0xdb,0x60,0xe2,0x1b,0xa3,0x66,0x82,0x06,0x69,0xd2,0x59,0x05,0xb2,0x0f,
	0xf0,0xe7,0xc1,0x93,0x68,0xf5,0x7d,0xb4,0x2f,0x36,0x48,0x92,0xeb,0x8e,0xc4,0xb4,
	0x92,0xc5,0xbf,0xbc,0xca,0x59,0x0c,0x0d,0xc3,0x76,0xe1,0xb7,0xe2,0xd7,0x99,0xe8,
	0xf6,0x52,0x04,0x97,0xc6,0xcd,0xda,0x02,0x14,0xc3,0xe0,0xaf,0x6c,0xb1,0x51,0xeb,
	0x0c,0x63,0x1f,0x33,0x63,0xa3,0xf5,0x69,0x90,0x2c,0x28,0xb4,0xf3,0x86,0x79,0xc7,
	0x2f,0xfd,0x80,0xf0,0x26,0x22,0x3d,0x48,0xcc,0x06,0xf7,0xb7,0xd3,0x16,0x0a,0x8f
};

/* The string "Bad" encrypted. */
const uint8_t RSA_ENCRYPT_BAD[] = {
	0x05,0xab,0x92,0x95,0x52,0xd2,0xab,0x12,0x4d,0x6e,0x9f,0x28,0xbd,0x21,0x3f,0xf2,
	0x7e,0xd1,0x01,0x3f,0x9b,0x5f,0x53,0xb5,0xad,0x2f,0x71,0x75,0x1f,0x5f,0x20,0xa8,
	0xfa,0x03,0xdb,0xf3,0x2a,0x08,0x98,0x64,0x49,0xfb,0xdd,0x7b,0x93,0x24,0xd0,0x63,
	0x1d,0x0d,0x2a,0xef,0x1c,0x2d,0xdb,0x42,0xde,0xdf,0xff,0x6b,0x42,0xdb,0xb7,0xcb,
	0x1e,0x0d,0x09,0xb4,0x6b,0x0f,0xa6,0x4f,0x84,0xde,0xec,0xde,0xbb,0x90,0xf7,0x85,
	0xde,0x6e,0x45,0xa2,0x24,0xa9,0x92,0x80,0x07,0x4d,0x52,0xbf,0x7b,0x14,0x97,0x54,
	0x66,0xdf,0x60,0xa8,0x7a,0x18,0x26,0xc1,0xb8,0xff,0x3f,0xda,0x3b,0x5d,0xbf,0x00,
	0xe2,0x3a,0xb1,0xf6,0x12,0x78,0x0c,0x1c,0xcf,0xe6,0x97,0x72,0x66,0x8d,0xf0,0xfb,
	0xa6,0x0a,0x37,0x7f,0x0f,0xe9,0x94,0x43,0x46,0x63,0xe1,0x95,0xfd,0x75,0x38,0x63,
	0xda,0x44,0x45,0xf7,0xb6,0x5e,0xe8,0x41,0x33,0x42,0xc6,0xe4,0xe0,0xb7,0x26,0x94,
	0x44,0x8d,0x60,0xd8,0x2b,0xcd,0xdd,0xb3,0x48,0x8a,0x00,0x38,0x92,0x1d,0xe5,0x90,
	0xec,0x8c,0x41,0xa8,0x3e,0xf6,0x49,0xdc,0xda,0x1e,0x08,0x46,0x33,0x56,0x1e,0x60,
	0x72,0xae,0x26,0xc8,0x6a,0x02,0x7f,0x61,0x8b,0x63,0x4a,0xcc,0xe9,0xdc,0xd3,0xf1,
	0x4d,0x36,0x4b,0xe5,0x11,0x37,0x11,0x08,0x9b,0xe5,0x5f,0x87,0xff,0x1e,0x1a,0x5e,
	0x9c,0xa2,0xb7,0x3e,0xaf,0x69,0x31,0xca,0xdc,0xa5,0x9f,0xd8,0x69,0x14,0x75,0x05,
	0x0c,0x3f,0xfd,0xb6,0x91,0x77,0xa6,0x36,0x8b,0xeb,0x60,0xef,0x27,0x86,0xa2,0x7f
};

/* The string "Bad" encrypted with the label "Test"
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_LABEL_ENCRYPT_BAD[] = {
	0x4b,0xd8,0x20,0x07,0x6f,0x68,0xc0,0xfa,0xb4,0xdc,0x3e,0xd2,0x62,0x2b,0x0e,0xec,
	0x42,0x3b,0x08,0xc3,0xc6,0x81,0xb7,0x9d,0x23,0xf4,0xae,0x87,0xd2,0x49,0x46,0xa6,
	0x78,0x4b,0x26,0x90,0xa0,0x5c,0xb1,0x97,0x2f,0x52,0xbe,0x86,0x18,0xf7,0xbc,0xf8,
	0xb2,0xe8,0x1c,0x58,0x9a,0xee,0x2c,0x76,0x5f,0xea,0x09,0x66,0x91,0xcd,0xbc,0xbb,
	0xdd,0xb6,0xa8,0x16,0x54,0xac,0x3f,0x60,0x7e,0xcd,0x34,0xaa,0x3e,0x50,0x28,0xbf,
	0xfa,0xb1,0x4b,0x8a,0xf8,0x62,0xbd,0x2a,0xb3,0x2f,0xfb,0x73,0xf2,0xe8,0x8d,0x30,
	0x80,0xc7,0xf7,0xef,0xbb,0x4c,0x71,0xf5,0x81,0x2b,0x2e,0xa0,0x6c,0x20,0xfc,0x50,
	0x4c,0x00,0x6b,0xbe,0x6e,0x6a,0x73,0xd2,0x21,0xb2,0x4c,0x58,0x97,0xae,0xd0,0xa0,
	0x1a,0xa3,0x1c,0x71,0x1a,0x31,0x31,0x85,0x97,0x5c,0x37,0x1c,0x11,0x16,0xc3,0x27,
	0xa6,0x7d,0x3c,0x08,0x50,0x7a,0x8b,0xc3,0xc2,0xf5,0x3f,0xab,0xdf,0xe7,0x56,0x8b,
	0x80,0x76,0xdc,0x35,0x34,0xad,0xad,0x29,0xc9,0x8c,0x68,0x9d,0x64,0xd9,0x12,0xd7,
	0x50,0x3b,0xf6,0xca,0xbb,0xd5,0xb5,0x0c,0xac,0xbf,0x43,0xed,0xc5,0x2e,0x31,0x16,
	0xbf,0xae,0x32,0x46,0xa1,0xc4,0x5e,0x47,0xc7,0x79,0x08,0xd3,0xe5,0x9c,0x53,0x8c,
	0x42,0xd1,0x0c,0x9e,0x8b,0x95,0xa7,0xf6,0x85,0x31,0x7e,0x24,0xdc,0x23,0x81,0xd4,
	0xaf,0x21,0x09,0x17,0x28,0x8b,0xf6,0x01,0x3b,0xb3,0x5f,0x86,0x96,0x3e,0xbf,0xcf,
	0x8d,0xdd,0x03,0x15,0xc2,0xb0,0x80,0xc1,0xeb,0x79,0x4a,0x76,0xd7,0x25,0xd6,0x2d
};

/* The string "Bad" encrypted using SHA256 for hashing. */
const uint8_t RSA_SHA256_ENCRYPT_BAD[] = {
	0x56,0xd2,0xe6,0xd0,0x9c,0x59,0x00,0x55,0x4d,0x57,0x71,0xb8,0xf3,0x85,0x1c,0xac,
	0xba,0x86,0x27,0xc1,0xe1,0x79,0x4f,0x60,0x4b,0x15,0x48,0x72,0x02,0xea,0x32,0xf6,
	0x42,0x15,0x85,0xaa,0xb0,0x01,0x40,0xdf,0x2b,0x41,0x36,0x0e,0xd1,0x1e,0xe3,0xda,
	0xfa,0x69,0x83,0xcb,0x30,0x32,0xdc,0xb9,0xc7,0x38,0x50,0x96,0x5d,0x1a,0x4c,0xd1,
	0x42,0x15,0xbc,0x27,0x34,0x13,0x3b,0x9c,0x4c,0x4e,0xe0,0x3d,0x62,0xaa,0x45,0x1c,
	0x00,0x7d,0xa9,0xc6,0x33,0x9c,0xc8,0xdd,0xcd,0x3a,0xe6,0xd0,0x18,0xcc,0xd1,0x4a,
	0xf3,0x96,0x3e,0x02,0x83,0x24,0x38,0x0b,0x4c,0xd4,0x5b,0x42,0x51,0x0d,0xaf,0xba,
	0xe7,0x99,0x5a,0xb7,0xe4,0x32,0x62,0xbd,0x33,0x5d,0x40,0xa7,0x23,0xb8,0x29,0x1a,
	0x90,0xfd,0x73,0x2e,0xb1,0x56,0x35,0xd2,0x02,0xb4,0xe1,0x48,0x58,0xc0,0xce,0xc0,
	0xcb,0xc3,0x25,0x22,0x78,0x29,0x57,0x76,0x82,0xc9,0xd6,0xdd,0x1c,0x47,0x3c,0x18,
	0xab,0x42,0x3e,0x92,0x96,0x9c,0x43,0xc5,0x88,0xb3,0x4d,0xb9,0x98,0x7d,0x10,0x50,
	0x61,0x02,0x2b,0x17,0xea,0x3f,0x22,0x03,0x2a,0x4b,0xc0,0xbc,0x27,0xd0,0xc4,0x25,
	0xd1,0xf5,0x2d,0x46,0x0e,0x17,0xa3,0x81,0x2a,0x81,0x8e,0xe6,0x5b,0xcb,0x23,0x64,
	0xc7,0x8e,0x61,0x63,0x31,0xa6,0xbf,0xbc,0x5e,0x9d,0x6b,0x91,0x25,0x94,0x0d,0x79,
	0x63,0x6c,0xe1,0x7d,0x09,0x10,0xe3,0x83,0x48,0xf8,0x2a,0x8d,0x7b,0x24,0xc2,0xdb,
	0x19,0xc1,0x9e,0x6b,0x57,0xe2,0xd1,0xb5,0x28,0x26,0x48,0xe5,0xaa,0x14,0x6b,0x3a
};

/* The string "Bad" encrypted with the label "Test" and SHA256 for hashing.
 *
 * openssl pkeyutl -encrypt -inkey path_to_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_oaep_label:[hex string]
 */
const uint8_t RSA_SHA256_LABEL_ENCRYPT_BAD[] = {
	0x6e,0x81,0x01,0x33,0xec,0x36,0x9b,0x28,0x85,0xeb,0xe2,0x4a,0xe0,0xf2,0x59,0xec,
	0x4c,0x72,0xde,0x84,0x66,0x01,0xd5,0x71,0x13,0xd2,0x84,0xa9,0x47,0xbd,0x76,0x41,
	0x74,0x3d,0x7f,0x9b,0xb4,0xf0,0x26,0xcc,0xe6,0xb4,0xd2,0x6d,0x3c,0xc9,0xeb,0x74,
	0xc7,0x95,0x96,0x56,0x08,0x09,0x89,0x42,0x66,0x4b,0xbd,0x6b,0x0b,0xe6,0x55,0xd5,
	0xf3,0x0f,0x7d,0xc3,0xd3,0x04,0x50,0xd3,0x11,0x95,0x8d,0x03,0x35,0x75,0x3b,0x88,
	0x99,0xf9,0x0a,0x23,0x48,0x52,0x77,0xd6,0x3b,0x57,0xc5,0xed,0xee,0x61,0xd0,0xc9,
	0x99,0x5c,0x41,0xf0,0xaf,0x03,0xa9,0x03,0x8f,0x19,0x8d,0x3d,0xcd,0x92,0xfa,0x0c,
	0x0a,0xaf,0xa4,0x2a,0xa1,0x5b,0x5d,0x90,0xf3,0xe3,0x40,0x59,0x20,0xea,0x68,0x5e,
	0x6e,0x2b,0x51,0xbe,0xcd,0x08,0xa2,0x89,0x3a,0xf4,0xe1,0xa6,0x2a,0x56,0xad,0x77,
	0x8e,0xf4,0x21,0x48,0xf9,0xa9,0x9b,0x0f,0x2f,0x3a,0xf5,0x50,0x41,0x57,0x8f,0x0e,
	0xd6,0x21,0x77,0x3a,0xb4,0xcd,0x58,0x41,0xb9,0x9e,0x28,0xb8,0xf7,0x11,0x98,0xbc,
	0x35,0x93,0x27,0x7e,0xb3,0xbf,0xb5,0x04,0xe0,0x76,0xb6,0x67,0x80,0xb1,0x8a,0x50,
	0xa1,0x5d,0x8d,0xb3,0xb3,0x76,0x9f,0x3e,0x54,0x97,0x44,0x92,0xbf,0x9d,0x2d,0x8c,
	0x25,0x80,0xa0,0x22,0xed,0x58,0x5c,0x59,0x10,0x1d,0xff,0xd6,0x92,0x1e,0x73,0x69,
	0x2f,0x08,0x0e,0x98,0x36,0xb4,0xf6,0x99,0x81,0x73,0x68,0x46,0xd4,0x86,0x71,0x09,
	0x97,0x4e,0xc0,0xa6,0x98,0x8e,0xf3,0xd2,0x57,0xdc,0xe0,0x1e,0x20,0xe6,0xf9,0x8a
};

/* The SHA256 signature for the string "Bad". */
const uint8_t RSA_SIGNATURE_BAD[] = {
	0x3c,0xc3,0xd0,0xd8,0xd7,0xcb,0x62,0xc4,0x67,0x8c,0x1d,0x0d,0xd5,0xde,0x10,0xdb,
	0x21,0xd3,0xe5,0x40,0x62,0x73,0x8f,0x60,0xff,0x78,0x87,0xa5,0xe7,0x51,0x62,0x33,
	0xdd,0xc4,0x52,0x81,0xc6,0xf0,0xc4,0xea,0x45,0x63,0xb2,0x9b,0xdf,0xa5,0xeb,0xb6,
	0x2d,0x34,0x4c,0xd6,0x33,0xc3,0x49,0xba,0xee,0xf1,0xab,0x80,0xdb,0xb9,0x4e,0x8a,
	0x6e,0xb6,0x6c,0x7a,0x70,0x03,0xfa,0x4d,0x63,0xf9,0x52,0x99,0x44,0xa8,0x34,0xcf,
	0xc0,0x3b,0xe3,0x46,0x78,0xf2,0xbb,0x04,0xfc,0xd6,0x5c,0x92,0xe3,0x08,0xd9,0x7b,
	0x55,0xee,0x0b,0xc3,0x0a,0x87,0x59,0xd8,0xa3,0xe4,0xce,0xee,0x37,0xa4,0x37,0x24,
	0x0d,0x2b,0x31,0x01,0x84,0x22,0x60,0x54,0xa8,0x0a,0x5c,0xae,0xf2,0xa6,0x3d,0xe5,
	0x59,0x5a,0x1d,0xd2,0x18,0x66,0xf5,0xef,0x8e,0x3d,0xcc,0x0f,0x56,0x23,0x08,0x67,
	0xe6,0x64,0x09,0x4e,0x77,0xc7,0xf2,0x9e,0x08,0xa2,0xa6,0x21,0xee,0xe2,0x23,0xe7,
	0xc2,0x6d,0xe1,0x23,0xc9,0x65,0xcd,0xc6,0xd7,0xce,0x53,0xf7,0xf8,0x18,0xb2,0x17,
	0x4b,0x65,0xb5,0x69,0xf4,0x9f,0xda,0x68,0xa3,0xed,0xb1,0x87,0xda,0x45,0x18,0x1a,
	0xe9,0x3a,0xfd,0xb4,0x6b,0x0f,0x18,0xef,0x79,0x3d,0x45,0xac,0x91,0x15,0x04,0xab,
	0x58,0xed,0x3d,0x19,0xa2,0x4f,0xa7,0x2a,0xf3,0xc2,0x6d,0xb5,0xe9,0x5c,0xf4,0x96,
	0x0b,0x1d,0xe5,0xc4,0xd7,0xc6,0xf4,0xa0,0xfc,0x13,0x2e,0x48,0x3c,0x48,0x2d,0x00,
	0xa4,0xdf,0xb5,0x9d,0x43,0xd2,0xc0,0x82,0xd2,0x6c,0x6c,0xe0,0xcd,0x9e,0xc5,0x40
};

const struct rsa_public_key RSA_PUBLIC_KEY2 = {
	.modulus = {
		0xcb,0x5c,0xf9,0x29,0x58,0xc8,0x06,0xa5,0x29,0x26,0xc4,0xa5,0x79,0xd4,0xeb,0x61,
		0x1d,0x54,0x86,0x94,0xf0,0x2e,0x16,0x9f,0x33,0xa4,0x62,0x81,0x28,0x74,0xe5,0xdf,
		0x9f,0x0c,0x3c,0xd2,0xea,0x49,0x62,0x4d,0xe9,0xee,0xb4,0x4d,0x1b,0x8f,0xa1,0x53,
		0x14,0xdf,0x92,0xf3,0x8e,0xaf,0xc9,0x41,0x23,0xad,0xf6,0xd9,0xe9,0xf2,0x7d,0x71,
		0xc2,0xfb,0xcb,0x5d,0xa2,0x96,0x50,0x45,0x04,0x77,0x75,0x46,0xa7,0x51,0x34,0x73,
		0x93,0x74,0xa7,0xa2,0x6b,0x7d,0xb8,0xa8,0x99,0xe4,0xe0,0xec,0xa8,0x8b,0x54,0xcd,
		0xd5,0xb8,0x56,0xb6,0x0f,0x54,0x26,0x0c,0x32,0x37,0xa4,0xe3,0x66,0xa8,0x86,0x78,
		0x5a,0x5b,0x26,0x76,0x20,0x2b,0xeb,0xf0,0x0f,0x4e,0x1e,0xb5,0xcf,0x53,0xde,0xa1,
		0x56,0xb3,0xbb,0x65,0xaf,0x40,0x69,0x05,0xba,0xc2,0x32,0xcd,0x53,0x6c,0x0c,0x7d,
		0x55,0xf5,0xaa,0xf4,0xd6,0x66,0x15,0x06,0xd4,0xc1,0xab,0x02,0xad,0x08,0x2d,0x05,
		0x93,0x20,0x09,0xec,0xc7,0x26,0x78,0xcf,0x73,0x5e,0xca,0x34,0x07,0x5c,0xdc,0xe1,
		0x1b,0x2e,0x8e,0x94,0x41,0xc7,0xcd,0xf1,0xfa,0xfe,0xa4,0x8b,0xb1,0x5a,0x89,0x7c,
		0xdb,0xe6,0xc4,0xba,0x1d,0x94,0x66,0x92,0x34,0xd4,0xd8,0xf8,0xef,0x21,0x05,0x7d,
		0x7e,0xef,0x6c,0xf4,0xc4,0x13,0xda,0x1e,0xc5,0xf5,0x60,0x21,0x55,0xe4,0xa1,0x8f,
		0x34,0x67,0xa7,0xbc,0xec,0x3e,0x02,0xa6,0x70,0x19,0xde,0xf0,0xd8,0xfa,0xc4,0xc4,
		0x19,0x4f,0x46,0x25,0xce,0x5e,0x1b,0xaa,0x2d,0x1e,0xce,0xf7,0x36,0x09,0xb8,0xb9
	},
	.mod_length = 256,
	.exponent = 65537
};

const char RSA_PUBKEY2_PEM[] = "-----BEGIN PUBLIC KEY-----\n"
	"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy1z5KVjIBqUpJsSledTr"
	"YR1UhpTwLhafM6RigSh05d+fDDzS6kliTenutE0bj6FTFN+S846vyUEjrfbZ6fJ9"
	"ccL7y12illBFBHd1RqdRNHOTdKeia324qJnk4Oyoi1TN1bhWtg9UJgwyN6TjZqiG"
	"eFpbJnYgK+vwD04etc9T3qFWs7tlr0BpBbrCMs1TbAx9VfWq9NZmFQbUwasCrQgt"
	"BZMgCezHJnjPc17KNAdc3OEbLo6UQcfN8fr+pIuxWol82+bEuh2UZpI01Nj47yEF"
	"fX7vbPTEE9oexfVgIVXkoY80Z6e87D4CpnAZ3vDY+sTEGU9GJc5eG6otHs73Ngm4"
	"uQIDAQAB\n"
	"-----END PUBLIC KEY-----\n";

const size_t RSA_PUBKEY2_PEM_LEN = sizeof (RSA_PUBKEY2_PEM);

const uint8_t RSA_PUBKEY2_DER[] = {
	0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,
	0x00,0xcb,0x5c,0xf9,0x29,0x58,0xc8,0x06,0xa5,0x29,0x26,0xc4,0xa5,0x79,0xd4,0xeb,
	0x61,0x1d,0x54,0x86,0x94,0xf0,0x2e,0x16,0x9f,0x33,0xa4,0x62,0x81,0x28,0x74,0xe5,
	0xdf,0x9f,0x0c,0x3c,0xd2,0xea,0x49,0x62,0x4d,0xe9,0xee,0xb4,0x4d,0x1b,0x8f,0xa1,
	0x53,0x14,0xdf,0x92,0xf3,0x8e,0xaf,0xc9,0x41,0x23,0xad,0xf6,0xd9,0xe9,0xf2,0x7d,
	0x71,0xc2,0xfb,0xcb,0x5d,0xa2,0x96,0x50,0x45,0x04,0x77,0x75,0x46,0xa7,0x51,0x34,
	0x73,0x93,0x74,0xa7,0xa2,0x6b,0x7d,0xb8,0xa8,0x99,0xe4,0xe0,0xec,0xa8,0x8b,0x54,
	0xcd,0xd5,0xb8,0x56,0xb6,0x0f,0x54,0x26,0x0c,0x32,0x37,0xa4,0xe3,0x66,0xa8,0x86,
	0x78,0x5a,0x5b,0x26,0x76,0x20,0x2b,0xeb,0xf0,0x0f,0x4e,0x1e,0xb5,0xcf,0x53,0xde,
	0xa1,0x56,0xb3,0xbb,0x65,0xaf,0x40,0x69,0x05,0xba,0xc2,0x32,0xcd,0x53,0x6c,0x0c,
	0x7d,0x55,0xf5,0xaa,0xf4,0xd6,0x66,0x15,0x06,0xd4,0xc1,0xab,0x02,0xad,0x08,0x2d,
	0x05,0x93,0x20,0x09,0xec,0xc7,0x26,0x78,0xcf,0x73,0x5e,0xca,0x34,0x07,0x5c,0xdc,
	0xe1,0x1b,0x2e,0x8e,0x94,0x41,0xc7,0xcd,0xf1,0xfa,0xfe,0xa4,0x8b,0xb1,0x5a,0x89,
	0x7c,0xdb,0xe6,0xc4,0xba,0x1d,0x94,0x66,0x92,0x34,0xd4,0xd8,0xf8,0xef,0x21,0x05,
	0x7d,0x7e,0xef,0x6c,0xf4,0xc4,0x13,0xda,0x1e,0xc5,0xf5,0x60,0x21,0x55,0xe4,0xa1,
	0x8f,0x34,0x67,0xa7,0xbc,0xec,0x3e,0x02,0xa6,0x70,0x19,0xde,0xf0,0xd8,0xfa,0xc4,
	0xc4,0x19,0x4f,0x46,0x25,0xce,0x5e,0x1b,0xaa,0x2d,0x1e,0xce,0xf7,0x36,0x09,0xb8,
	0xb9,0x02,0x03,0x01,0x00,0x01
};

const size_t RSA_PUBKEY2_DER_LEN = sizeof (RSA_PUBKEY2_DER);

const char RSA_PRIVKEY2_PEM[] = "-----BEGIN RSA PRIVATE KEY-----\n"
	"MIIEogIBAAKCAQEAy1z5KVjIBqUpJsSledTrYR1UhpTwLhafM6RigSh05d+fDDzS"
	"6kliTenutE0bj6FTFN+S846vyUEjrfbZ6fJ9ccL7y12illBFBHd1RqdRNHOTdKei"
	"a324qJnk4Oyoi1TN1bhWtg9UJgwyN6TjZqiGeFpbJnYgK+vwD04etc9T3qFWs7tl"
	"r0BpBbrCMs1TbAx9VfWq9NZmFQbUwasCrQgtBZMgCezHJnjPc17KNAdc3OEbLo6U"
	"QcfN8fr+pIuxWol82+bEuh2UZpI01Nj47yEFfX7vbPTEE9oexfVgIVXkoY80Z6e8"
	"7D4CpnAZ3vDY+sTEGU9GJc5eG6otHs73Ngm4uQIDAQABAoIBAHAqSJcgi7r2j5r9"
	"bVOkN2sqFTvhnBOfkJGYQmiAmvFLBNtoFOD6NslIlMtHmEMBNOTXZ6MEeTpkvjwu"
	"YgTiJYSAigaiD5IeleKfzMR6dpSahqMZ7sCg6B++OfpBLbkjvh/5+4GRNNWDdpMw"
	"U+iEXR62n324O4heKtsWOGQJBXZNxNIbyIWshjrEpd0dg7515cioRM7SgzoKnVPR"
	"V/0rHTh5O+IXVk8Vq1/vRNa6IYeUsCA0+NMO7iA92AkuskMwWkUfRA2artOxmaDK"
	"0pYqg0Ij6VM1/9qpRA9wQjmRP1fZVUiZMH81Hbi3w5AMdwtpUscgODQlLeBw/Ep4"
	"TquFxLECgYEA6cLtsHdedsxC1aSzWDpXavTS3Q62qbkw8d8b26g7pcmm21MzrVDH"
	"hFzNRz6A1wpsFQDfshNWbH0vvJWMRaFCXmMmBuIFtJ79m5jMIpZ31h3FETbJioXC"
	"VmRmpqXBGC62xhxE+3IRJAritkncfvbE41ahnYQNUPqBCJ/7yDhaP2UCgYEA3rW4"
	"OR7yJNMeEys7PX2hhfFWCmiVL762CshzENkNL5hJIKnBBecHqEroiDT/DYE5DBCC"
	"yiFM0jQZLnKjlTZH/nTyKr2mdPTMF6RPnNMpLbKqFemEF3pano5FsDL/5Wt0M+Us"
	"FnCCxRzntMm/44RrFjwjUeaXHhKkqGtUnBCkMMUCgYAUGz0gkZPhef5BrBH1A8ej"
	"Hn3In8xcWt53323g/d5riyW79bMbNDiFDQpnF1wzouTbBaE4CuvDFx11BhPzpUQ1"
	"JCgQLX66I3bC3GiqjPCvzQ23RlQdgxXNIoOlz9oE/3efIK1aR1xsEjef4EiD7yvO"
	"NhRenQ4cKf/RQxmABkDU9QKBgF5THsRqm+oG1I0P2VZQ2FFvhp5/7ve60UU94qY3"
	"F8OZvxcrboo+cFrR5yyRLZkdqvi2IX7UncHFuQiYGzp+M/3MsCh0DIUqjSpSODnW"
	"oXEuY6VGMuDyvGC9JzzaTNFxMlUscgDLBEfR1z0V2cTV97kCHX95p3VgNgby9nHn"
	"BnN1AoGAO6xsJff3Hj9mMMHtF854/GpTpfAwN0XcS8tPObnIDWrspvtL+0MMjBLw"
	"P7jCWJ32+fAHcRhf4q924qxX1ART7bEvx7bBYXyo2jdrjtC/8SaDW5XmThTwcWx6"
	"0O2dbndnptvShomnDMm3X0Zf3p3V/6rOLKeRhMHA2HKszPQxdmw=\n"
	"-----END RSA PRIVATE KEY-----\n";

const size_t RSA_PRIVKEY2_PEM_LEN = sizeof (RSA_PRIVKEY2_PEM);

const uint8_t RSA_PRIVKEY2_DER[] = {
	0x30,0x82,0x04,0xa2,0x02,0x01,0x00,0x02,0x82,0x01,0x01,0x00,0xcb,0x5c,0xf9,0x29,
	0x58,0xc8,0x06,0xa5,0x29,0x26,0xc4,0xa5,0x79,0xd4,0xeb,0x61,0x1d,0x54,0x86,0x94,
	0xf0,0x2e,0x16,0x9f,0x33,0xa4,0x62,0x81,0x28,0x74,0xe5,0xdf,0x9f,0x0c,0x3c,0xd2,
	0xea,0x49,0x62,0x4d,0xe9,0xee,0xb4,0x4d,0x1b,0x8f,0xa1,0x53,0x14,0xdf,0x92,0xf3,
	0x8e,0xaf,0xc9,0x41,0x23,0xad,0xf6,0xd9,0xe9,0xf2,0x7d,0x71,0xc2,0xfb,0xcb,0x5d,
	0xa2,0x96,0x50,0x45,0x04,0x77,0x75,0x46,0xa7,0x51,0x34,0x73,0x93,0x74,0xa7,0xa2,
	0x6b,0x7d,0xb8,0xa8,0x99,0xe4,0xe0,0xec,0xa8,0x8b,0x54,0xcd,0xd5,0xb8,0x56,0xb6,
	0x0f,0x54,0x26,0x0c,0x32,0x37,0xa4,0xe3,0x66,0xa8,0x86,0x78,0x5a,0x5b,0x26,0x76,
	0x20,0x2b,0xeb,0xf0,0x0f,0x4e,0x1e,0xb5,0xcf,0x53,0xde,0xa1,0x56,0xb3,0xbb,0x65,
	0xaf,0x40,0x69,0x05,0xba,0xc2,0x32,0xcd,0x53,0x6c,0x0c,0x7d,0x55,0xf5,0xaa,0xf4,
	0xd6,0x66,0x15,0x06,0xd4,0xc1,0xab,0x02,0xad,0x08,0x2d,0x05,0x93,0x20,0x09,0xec,
	0xc7,0x26,0x78,0xcf,0x73,0x5e,0xca,0x34,0x07,0x5c,0xdc,0xe1,0x1b,0x2e,0x8e,0x94,
	0x41,0xc7,0xcd,0xf1,0xfa,0xfe,0xa4,0x8b,0xb1,0x5a,0x89,0x7c,0xdb,0xe6,0xc4,0xba,
	0x1d,0x94,0x66,0x92,0x34,0xd4,0xd8,0xf8,0xef,0x21,0x05,0x7d,0x7e,0xef,0x6c,0xf4,
	0xc4,0x13,0xda,0x1e,0xc5,0xf5,0x60,0x21,0x55,0xe4,0xa1,0x8f,0x34,0x67,0xa7,0xbc,
	0xec,0x3e,0x02,0xa6,0x70,0x19,0xde,0xf0,0xd8,0xfa,0xc4,0xc4,0x19,0x4f,0x46,0x25,
	0xce,0x5e,0x1b,0xaa,0x2d,0x1e,0xce,0xf7,0x36,0x09,0xb8,0xb9,0x02,0x03,0x01,0x00,
	0x01,0x02,0x82,0x01,0x00,0x70,0x2a,0x48,0x97,0x20,0x8b,0xba,0xf6,0x8f,0x9a,0xfd,
	0x6d,0x53,0xa4,0x37,0x6b,0x2a,0x15,0x3b,0xe1,0x9c,0x13,0x9f,0x90,0x91,0x98,0x42,
	0x68,0x80,0x9a,0xf1,0x4b,0x04,0xdb,0x68,0x14,0xe0,0xfa,0x36,0xc9,0x48,0x94,0xcb,
	0x47,0x98,0x43,0x01,0x34,0xe4,0xd7,0x67,0xa3,0x04,0x79,0x3a,0x64,0xbe,0x3c,0x2e,
	0x62,0x04,0xe2,0x25,0x84,0x80,0x8a,0x06,0xa2,0x0f,0x92,0x1e,0x95,0xe2,0x9f,0xcc,
	0xc4,0x7a,0x76,0x94,0x9a,0x86,0xa3,0x19,0xee,0xc0,0xa0,0xe8,0x1f,0xbe,0x39,0xfa,
	0x41,0x2d,0xb9,0x23,0xbe,0x1f,0xf9,0xfb,0x81,0x91,0x34,0xd5,0x83,0x76,0x93,0x30,
	0x53,0xe8,0x84,0x5d,0x1e,0xb6,0x9f,0x7d,0xb8,0x3b,0x88,0x5e,0x2a,0xdb,0x16,0x38,
	0x64,0x09,0x05,0x76,0x4d,0xc4,0xd2,0x1b,0xc8,0x85,0xac,0x86,0x3a,0xc4,0xa5,0xdd,
	0x1d,0x83,0xbe,0x75,0xe5,0xc8,0xa8,0x44,0xce,0xd2,0x83,0x3a,0x0a,0x9d,0x53,0xd1,
	0x57,0xfd,0x2b,0x1d,0x38,0x79,0x3b,0xe2,0x17,0x56,0x4f,0x15,0xab,0x5f,0xef,0x44,
	0xd6,0xba,0x21,0x87,0x94,0xb0,0x20,0x34,0xf8,0xd3,0x0e,0xee,0x20,0x3d,0xd8,0x09,
	0x2e,0xb2,0x43,0x30,0x5a,0x45,0x1f,0x44,0x0d,0x9a,0xae,0xd3,0xb1,0x99,0xa0,0xca,
	0xd2,0x96,0x2a,0x83,0x42,0x23,0xe9,0x53,0x35,0xff,0xda,0xa9,0x44,0x0f,0x70,0x42,
	0x39,0x91,0x3f,0x57,0xd9,0x55,0x48,0x99,0x30,0x7f,0x35,0x1d,0xb8,0xb7,0xc3,0x90,
	0x0c,0x77,0x0b,0x69,0x52,0xc7,0x20,0x38,0x34,0x25,0x2d,0xe0,0x70,0xfc,0x4a,0x78,
	0x4e,0xab,0x85,0xc4,0xb1,0x02,0x81,0x81,0x00,0xe9,0xc2,0xed,0xb0,0x77,0x5e,0x76,
	0xcc,0x42,0xd5,0xa4,0xb3,0x58,0x3a,0x57,0x6a,0xf4,0xd2,0xdd,0x0e,0xb6,0xa9,0xb9,
	0x30,0xf1,0xdf,0x1b,0xdb,0xa8,0x3b,0xa5,0xc9,0xa6,0xdb,0x53,0x33,0xad,0x50,0xc7,
	0x84,0x5c,0xcd,0x47,0x3e,0x80,0xd7,0x0a,0x6c,0x15,0x00,0xdf,0xb2,0x13,0x56,0x6c,
	0x7d,0x2f,0xbc,0x95,0x8c,0x45,0xa1,0x42,0x5e,0x63,0x26,0x06,0xe2,0x05,0xb4,0x9e,
	0xfd,0x9b,0x98,0xcc,0x22,0x96,0x77,0xd6,0x1d,0xc5,0x11,0x36,0xc9,0x8a,0x85,0xc2,
	0x56,0x64,0x66,0xa6,0xa5,0xc1,0x18,0x2e,0xb6,0xc6,0x1c,0x44,0xfb,0x72,0x11,0x24,
	0x0a,0xe2,0xb6,0x49,0xdc,0x7e,0xf6,0xc4,0xe3,0x56,0xa1,0x9d,0x84,0x0d,0x50,0xfa,
	0x81,0x08,0x9f,0xfb,0xc8,0x38,0x5a,0x3f,0x65,0x02,0x81,0x81,0x00,0xde,0xb5,0xb8,
	0x39,0x1e,0xf2,0x24,0xd3,0x1e,0x13,0x2b,0x3b,0x3d,0x7d,0xa1,0x85,0xf1,0x56,0x0a,
	0x68,0x95,0x2f,0xbe,0xb6,0x0a,0xc8,0x73,0x10,0xd9,0x0d,0x2f,0x98,0x49,0x20,0xa9,
	0xc1,0x05,0xe7,0x07,0xa8,0x4a,0xe8,0x88,0x34,0xff,0x0d,0x81,0x39,0x0c,0x10,0x82,
	0xca,0x21,0x4c,0xd2,0x34,0x19,0x2e,0x72,0xa3,0x95,0x36,0x47,0xfe,0x74,0xf2,0x2a,
	0xbd,0xa6,0x74,0xf4,0xcc,0x17,0xa4,0x4f,0x9c,0xd3,0x29,0x2d,0xb2,0xaa,0x15,0xe9,
	0x84,0x17,0x7a,0x5a,0x9e,0x8e,0x45,0xb0,0x32,0xff,0xe5,0x6b,0x74,0x33,0xe5,0x2c,
	0x16,0x70,0x82,0xc5,0x1c,0xe7,0xb4,0xc9,0xbf,0xe3,0x84,0x6b,0x16,0x3c,0x23,0x51,
	0xe6,0x97,0x1e,0x12,0xa4,0xa8,0x6b,0x54,0x9c,0x10,0xa4,0x30,0xc5,0x02,0x81,0x80,
	0x14,0x1b,0x3d,0x20,0x91,0x93,0xe1,0x79,0xfe,0x41,0xac,0x11,0xf5,0x03,0xc7,0xa3,
	0x1e,0x7d,0xc8,0x9f,0xcc,0x5c,0x5a,0xde,0x77,0xdf,0x6d,0xe0,0xfd,0xde,0x6b,0x8b,
	0x25,0xbb,0xf5,0xb3,0x1b,0x34,0x38,0x85,0x0d,0x0a,0x67,0x17,0x5c,0x33,0xa2,0xe4,
	0xdb,0x05,0xa1,0x38,0x0a,0xeb,0xc3,0x17,0x1d,0x75,0x06,0x13,0xf3,0xa5,0x44,0x35,
	0x24,0x28,0x10,0x2d,0x7e,0xba,0x23,0x76,0xc2,0xdc,0x68,0xaa,0x8c,0xf0,0xaf,0xcd,
	0x0d,0xb7,0x46,0x54,0x1d,0x83,0x15,0xcd,0x22,0x83,0xa5,0xcf,0xda,0x04,0xff,0x77,
	0x9f,0x20,0xad,0x5a,0x47,0x5c,0x6c,0x12,0x37,0x9f,0xe0,0x48,0x83,0xef,0x2b,0xce,
	0x36,0x14,0x5e,0x9d,0x0e,0x1c,0x29,0xff,0xd1,0x43,0x19,0x80,0x06,0x40,0xd4,0xf5,
	0x02,0x81,0x80,0x5e,0x53,0x1e,0xc4,0x6a,0x9b,0xea,0x06,0xd4,0x8d,0x0f,0xd9,0x56,
	0x50,0xd8,0x51,0x6f,0x86,0x9e,0x7f,0xee,0xf7,0xba,0xd1,0x45,0x3d,0xe2,0xa6,0x37,
	0x17,0xc3,0x99,0xbf,0x17,0x2b,0x6e,0x8a,0x3e,0x70,0x5a,0xd1,0xe7,0x2c,0x91,0x2d,
	0x99,0x1d,0xaa,0xf8,0xb6,0x21,0x7e,0xd4,0x9d,0xc1,0xc5,0xb9,0x08,0x98,0x1b,0x3a,
	0x7e,0x33,0xfd,0xcc,0xb0,0x28,0x74,0x0c,0x85,0x2a,0x8d,0x2a,0x52,0x38,0x39,0xd6,
	0xa1,0x71,0x2e,0x63,0xa5,0x46,0x32,0xe0,0xf2,0xbc,0x60,0xbd,0x27,0x3c,0xda,0x4c,
	0xd1,0x71,0x32,0x55,0x2c,0x72,0x00,0xcb,0x04,0x47,0xd1,0xd7,0x3d,0x15,0xd9,0xc4,
	0xd5,0xf7,0xb9,0x02,0x1d,0x7f,0x79,0xa7,0x75,0x60,0x36,0x06,0xf2,0xf6,0x71,0xe7,
	0x06,0x73,0x75,0x02,0x81,0x80,0x3b,0xac,0x6c,0x25,0xf7,0xf7,0x1e,0x3f,0x66,0x30,
	0xc1,0xed,0x17,0xce,0x78,0xfc,0x6a,0x53,0xa5,0xf0,0x30,0x37,0x45,0xdc,0x4b,0xcb,
	0x4f,0x39,0xb9,0xc8,0x0d,0x6a,0xec,0xa6,0xfb,0x4b,0xfb,0x43,0x0c,0x8c,0x12,0xf0,
	0x3f,0xb8,0xc2,0x58,0x9d,0xf6,0xf9,0xf0,0x07,0x71,0x18,0x5f,0xe2,0xaf,0x76,0xe2,
	0xac,0x57,0xd4,0x04,0x53,0xed,0xb1,0x2f,0xc7,0xb6,0xc1,0x61,0x7c,0xa8,0xda,0x37,
	0x6b,0x8e,0xd0,0xbf,0xf1,0x26,0x83,0x5b,0x95,0xe6,0x4e,0x14,0xf0,0x71,0x6c,0x7a,
	0xd0,0xed,0x9d,0x6e,0x77,0x67,0xa6,0xdb,0xd2,0x86,0x89,0xa7,0x0c,0xc9,0xb7,0x5f,
	0x46,0x5f,0xde,0x9d,0xd5,0xff,0xaa,0xce,0x2c,0xa7,0x91,0x84,0xc1,0xc0,0xd8,0x72,
	0xac,0xcc,0xf4,0x31,0x76,0x6c
};

const size_t RSA_PRIVKEY2_DER_LEN = sizeof (RSA_PRIVKEY2_DER);

/* The SHA256 signature for the string "Test". */
const uint8_t RSA_SIGNATURE2_TEST[] = {
	0x7d,0xff,0xd8,0x49,0x58,0x52,0x78,0x60,0x8b,0xc2,0x19,0xb8,0x18,0xb2,0x7e,0x6d,
	0x95,0x7c,0xcb,0x9b,0x7a,0xb2,0xcd,0x09,0xcc,0xfc,0x41,0x2d,0xd1,0xfc,0x8d,0x4d,
	0x3a,0x15,0x7d,0x00,0xa9,0x43,0x0e,0x29,0x2f,0x0f,0x56,0x55,0xb0,0x57,0xe2,0xe2,
	0x2a,0x24,0x63,0x0b,0x25,0x08,0x42,0xd5,0x18,0xba,0x2e,0xd2,0xf2,0xe5,0x20,0xb0,
	0x3c,0x75,0x06,0xf0,0x63,0x61,0xfd,0xd0,0x36,0x4f,0xf7,0x0e,0x4a,0x6c,0x5e,0xe5,
	0x5e,0x7d,0x7b,0x5e,0x8b,0xd7,0xc5,0xea,0x80,0x1f,0xc7,0x52,0xa9,0x54,0x97,0x5a,
	0x5a,0x39,0xdd,0x24,0xf2,0xde,0x65,0xd5,0x24,0xdc,0x8d,0x91,0x40,0x9c,0x14,0xdc,
	0x3d,0x31,0x95,0xed,0xa9,0x4d,0x39,0x5e,0xbf,0x64,0x00,0xe5,0x23,0x7c,0x7f,0x1a,
	0xca,0x9b,0x2a,0x2c,0x3c,0x9f,0x20,0x09,0xdf,0x0b,0xc8,0xe6,0x58,0x1b,0xca,0x9a,
	0x07,0xb2,0x6b,0x29,0x4b,0xa6,0xba,0xb5,0x7a,0x8d,0xd2,0x01,0x9c,0x29,0x83,0xe6,
	0x9c,0x06,0x43,0xc7,0x76,0xca,0xc9,0x4e,0x6d,0x78,0xd2,0xa8,0x9a,0xa2,0x76,0x73,
	0x9d,0xb6,0xbd,0x9c,0xcf,0x5d,0x5c,0xf8,0xe6,0x97,0x12,0x51,0x80,0xc5,0x64,0x1f,
	0x6d,0x4d,0x69,0xee,0x31,0xc5,0x07,0xc7,0xda,0x20,0x8b,0x55,0xed,0xff,0xb3,0x7d,
	0x05,0x17,0x8e,0xb6,0x5d,0xd4,0xc9,0xc7,0xc5,0x8a,0xfe,0x6c,0x33,0x5d,0xd6,0xcb,
	0x41,0x1d,0x5d,0x4e,0xd6,0xe2,0x81,0x39,0x52,0xa6,0x85,0xc5,0xfa,0x99,0xdf,0x63,
	0x0d,0xe8,0xbb,0x66,0x26,0x5c,0x4c,0xda,0xe3,0x8b,0x81,0x20,0x1d,0xe6,0x07,0x9a
};

/* The SHA256 signature for the string "Test2". */
const uint8_t RSA_SIGNATURE2_TEST2[] = {
	0x68,0x3f,0xb4,0xcb,0x24,0x2f,0xbf,0x83,0x6a,0xff,0x97,0x41,0x62,0x32,0xdb,0x95,
	0x9d,0x47,0x80,0x71,0xb0,0x46,0x3e,0xc1,0x3f,0x16,0x3a,0xeb,0x2e,0x93,0xd1,0x4a,
	0xbc,0x7a,0xa4,0x82,0x3e,0xd5,0x70,0x84,0x0a,0x78,0xab,0x98,0x4f,0xf3,0xcc,0xd9,
	0x9c,0x57,0xf7,0x08,0x79,0xb2,0x6a,0xad,0x5d,0xcb,0x38,0x32,0xe3,0x47,0x29,0xe1,
	0xf7,0xd7,0x24,0x53,0xaa,0xf6,0xd6,0xdb,0x8c,0xf4,0x03,0xbb,0xb6,0x25,0x6b,0xc7,
	0xab,0x1a,0x7c,0x95,0x38,0x30,0x3f,0x5e,0x8d,0x22,0xac,0x87,0xbe,0x5d,0x84,0x3a,
	0xc0,0x04,0x97,0x18,0x83,0xe0,0xce,0x9e,0x04,0x51,0x37,0x43,0x7d,0x06,0x1e,0x3b,
	0xb6,0x4d,0x1b,0x8b,0x13,0x28,0x51,0x2c,0xa8,0x80,0x74,0x0a,0x63,0x80,0x1d,0x30,
	0xa3,0x75,0x74,0x55,0x8e,0x6e,0x26,0xf5,0x19,0xa2,0xd0,0x32,0xc3,0xe6,0xc7,0xc3,
	0xb7,0x3f,0x9f,0x53,0xce,0x74,0xcb,0xa7,0x87,0xba,0xbd,0x47,0xcc,0xf5,0xfb,0x7c,
	0x93,0x6e,0xee,0x93,0x9a,0x0b,0xcd,0x71,0x29,0x10,0x80,0x18,0xd9,0x2e,0xff,0x57,
	0x24,0xd7,0x07,0x72,0x96,0x40,0x57,0xbe,0xc3,0x76,0x46,0xe8,0x6c,0x1e,0xc0,0x02,
	0x6a,0x93,0x99,0x38,0x55,0xe0,0x50,0x41,0xe2,0x1f,0x6a,0x00,0x3f,0xc2,0x1c,0x65,
	0xe9,0xf5,0x20,0x08,0xa4,0xfe,0x7b,0xae,0xe3,0xa9,0x34,0x4e,0x8a,0x76,0x80,0xee,
	0xf3,0x59,0x1a,0x79,0x57,0x14,0x5b,0xd4,0x8a,0x8b,0xc9,0x36,0x7e,0x04,0x4f,0xf2,
	0xa3,0x12,0x84,0x3f,0x4c,0x60,0xb4,0x0b,0x5d,0x7b,0xbe,0xc8,0xa1,0x0a,0xa3,0x19
};

/* The SHA256 signature for the string "Nope". */
const uint8_t RSA_SIGNATURE2_NOPE[] = {
	0x27,0x39,0x61,0x94,0x76,0x8b,0x72,0xc3,0xeb,0xa6,0x80,0xed,0x07,0xf0,0x6d,0x89,
	0x1a,0x5a,0x59,0xb2,0x69,0xef,0x21,0xeb,0x0f,0x67,0x6e,0x12,0x06,0xcb,0xe5,0x9b,
	0x7c,0xe4,0x4a,0xe6,0xb2,0xc2,0x22,0x90,0xda,0x69,0xfc,0xad,0x25,0x64,0xdf,0x62,
	0x46,0x0b,0xd0,0x9a,0x4d,0x33,0x59,0xa9,0xbf,0x78,0x2a,0xf6,0xff,0xa7,0x84,0xa3,
	0x72,0x6f,0x4e,0x1e,0xdb,0x18,0x1a,0xb7,0xdc,0x3a,0x54,0xad,0x65,0xe8,0x20,0xe3,
	0xfc,0xa4,0x16,0xc7,0xa6,0x28,0x2b,0xb4,0xdb,0xec,0xad,0x67,0x1e,0xc0,0x9c,0x6d,
	0xf3,0xd6,0xdc,0x0a,0xa9,0x12,0xe7,0x96,0x2d,0xbd,0x6a,0x1a,0xea,0xff,0xd2,0x81,
	0x49,0xd1,0xde,0x09,0x67,0xfb,0xa2,0x27,0x5f,0x68,0xcc,0xfd,0xb4,0x73,0x7d,0x34,
	0x6f,0xff,0x92,0x09,0x60,0xbb,0xbe,0xce,0x0f,0x2c,0xf9,0x52,0x19,0x8c,0xe4,0xd2,
	0x40,0x04,0x76,0xfb,0xea,0x86,0xe8,0x88,0x00,0x2c,0x38,0xd0,0x46,0xad,0xad,0x2e,
	0x01,0xef,0xc9,0x4c,0x03,0xb7,0xc2,0x31,0x88,0xe8,0x48,0x2a,0x1e,0x38,0xf9,0xb0,
	0x80,0x39,0x03,0xf6,0xf0,0x46,0x77,0x1b,0x1f,0xf4,0xce,0xdb,0x78,0xfc,0xe7,0x45,
	0x71,0x5f,0xee,0xd1,0x93,0xd5,0xe5,0xf2,0x80,0xb3,0x61,0x9a,0xac,0x54,0x4d,0xba,
	0x33,0x74,0xca,0x86,0xf4,0xf0,0xf5,0xdd,0x90,0x23,0xe7,0x75,0x18,0xbe,0xd4,0x93,
	0x0c,0xc5,0x78,0xcf,0x3f,0x8b,0x87,0xec,0x1f,0x3c,0x76,0x9b,0x40,0xad,0x79,0xd8,
	0xeb,0x19,0x9b,0x51,0x6e,0xec,0x4e,0xc1,0x6b,0x8e,0x09,0x89,0x42,0xc9,0xd1,0x2d
};

/* The SHA256 signature for the string "Bad". */
const uint8_t RSA_SIGNATURE2_BAD[] = {
	0x44,0xf0,0x74,0xea,0x26,0xa4,0x1f,0x1d,0x90,0x1f,0x8f,0x1d,0xfb,0xc3,0xaf,0x4f,
	0x61,0x84,0x52,0xa9,0x21,0xdd,0xda,0x3c,0x06,0xfa,0x0f,0xb5,0x38,0xb9,0x63,0x1f,
	0x1c,0x11,0x34,0x65,0xb7,0x24,0x41,0xad,0xd1,0x3b,0xb5,0x94,0xbd,0xff,0xc9,0x17,
	0x27,0x9d,0xaa,0xfb,0x0c,0x71,0x08,0x4a,0x0b,0x48,0xf5,0x86,0x6f,0x74,0x07,0xd3,
	0x18,0x5f,0x80,0x58,0x8d,0xf0,0x8f,0x27,0xd5,0xc8,0x59,0x3b,0xf5,0xe8,0x99,0x6c,
	0xc6,0xc2,0x3f,0x90,0x22,0xe1,0x4d,0x92,0x0c,0x0d,0xc0,0x8a,0xff,0x25,0x1e,0x13,
	0x52,0x5d,0x36,0x81,0xc1,0x9a,0x14,0x79,0xf8,0x17,0x5e,0x18,0xb7,0xa0,0x6b,0x35,
	0x27,0x91,0x5d,0x36,0xc6,0x1b,0xe3,0x73,0x1d,0xe1,0xee,0xf4,0x54,0xbf,0xf4,0x21,
	0x10,0x0a,0xb1,0x3b,0xe5,0xe4,0xd1,0x6b,0x2d,0x27,0xcf,0x41,0x5f,0x69,0xca,0xc9,
	0x08,0x1a,0x69,0xcf,0xfe,0x6c,0x12,0xd9,0x0a,0xce,0x9f,0x2d,0x21,0x03,0xd5,0x61,
	0x61,0x74,0x11,0x03,0x7e,0xe3,0xae,0x88,0x74,0xb3,0x10,0xf9,0x94,0x7b,0x6a,0xf8,
	0xef,0xf6,0x5b,0x8f,0x3c,0xb4,0xa8,0x08,0x23,0x6b,0x38,0xc2,0xd7,0x55,0xcc,0x77,
	0x86,0x7d,0x56,0x12,0xeb,0xf5,0x24,0x4a,0x76,0x76,0xac,0xc2,0x94,0xa8,0x66,0x6a,
	0x6c,0x6e,0x2a,0xb0,0x57,0x0f,0xec,0x1f,0xde,0x26,0x7a,0x1d,0x91,0x49,0xd3,0x1a,
	0x8d,0x8f,0x21,0x3e,0x45,0x0f,0x69,0x50,0x1d,0x46,0x79,0xee,0x62,0xb7,0xfc,0xf8,
	0xc6,0xc2,0x0e,0x44,0xb5,0x84,0x2a,0xa3,0x56,0xde,0x1d,0x45,0x04,0x0c,0x03,0x2b
};

const struct rsa_public_key RSA_PUBLIC_KEY3 = {
	.modulus = {
		0xbe,0x68,0x99,0x03,0xed,0xde,0xc5,0x61,0x07,0x96,0xa5,0xb9,0x96,0x20,0xb8,0x00,
		0xa8,0xc2,0x28,0xcf,0x36,0x28,0x01,0x51,0xb0,0xcb,0x1b,0xf3,0xb7,0x7b,0xf3,0xaf,
		0x54,0x6f,0xbd,0xf1,0x06,0xe2,0xab,0x6c,0x9f,0x3e,0x39,0x57,0xdc,0xa6,0xd2,0xe0,
		0x22,0x80,0x2c,0xdf,0x7d,0x46,0x9f,0x8f,0xa2,0xee,0x02,0x73,0x74,0x42,0xcf,0xf5,
		0x1c,0xa7,0xb2,0xaf,0x3e,0x1c,0x4a,0xba,0xd1,0x31,0x26,0x0d,0x80,0x33,0xfd,0x4d,
		0xfb,0xcd,0x5a,0x1d,0xca,0x7d,0x2a,0x4c,0x34,0x15,0x41,0xd2,0x86,0xf0,0xdf,0xa8,
		0x5f,0x6c,0x63,0xa4,0x8c,0x0c,0x61,0x73,0xc7,0xde,0xf5,0x26,0xd3,0x0a,0x71,0x8f,
		0x68,0x55,0x9e,0xc3,0xc6,0xae,0xcc,0xab,0x62,0xa4,0x84,0x49,0xb4,0x67,0x56,0x0c,
		0xbe,0x12,0xfe,0x21,0x93,0xf4,0x30,0x52,0xea,0x9f,0xa7,0x66,0x1b,0x1f,0x14,0x6e,
		0x7d,0x36,0xf5,0x91,0xac,0x23,0x3a,0xdb,0x81,0xa9,0xe4,0x4c,0xd3,0x95,0x71,0x38,
		0x0c,0x98,0x3a,0x6b,0xdf,0x48,0x47,0x62,0x0b,0x91,0x9d,0x15,0x65,0xf3,0xba,0x6a,
		0xfb,0x35,0xe4,0xdf,0x4b,0x54,0x8f,0xdc,0x0b,0xd7,0x2b,0xfb,0x3e,0xb1,0xa9,0xbc,
		0x09,0x94,0x9c,0xa7,0x37,0xfb,0xe0,0x85,0x0f,0x32,0xd5,0x4a,0xf9,0x74,0xc4,0x05,
		0x8c,0xc4,0x1f,0xb0,0x31,0x77,0xb0,0x62,0x40,0x89,0x89,0x61,0x7e,0x32,0xef,0x98,
		0xd4,0x09,0x09,0x4d,0xc6,0xe9,0x43,0xa2,0x39,0xfe,0x37,0xdc,0xab,0xff,0x26,0xea,
		0x95,0xac,0x7d,0x55,0x17,0xa7,0xfb,0xd3,0xe0,0xc1,0xa0,0xd7,0x8c,0x1b,0xec,0x95
	},
	.mod_length = 256,
	.exponent = 65537
};

const char RSA_PUBKEY3_PEM[] = "-----BEGIN PUBLIC KEY-----\n"
	"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvmiZA+3exWEHlqW5liC4"
	"AKjCKM82KAFRsMsb87d7869Ub73xBuKrbJ8+OVfcptLgIoAs331Gn4+i7gJzdELP"
	"9Rynsq8+HEq60TEmDYAz/U37zVodyn0qTDQVQdKG8N+oX2xjpIwMYXPH3vUm0wpx"
	"j2hVnsPGrsyrYqSESbRnVgy+Ev4hk/QwUuqfp2YbHxRufTb1kawjOtuBqeRM05Vx"
	"OAyYOmvfSEdiC5GdFWXzumr7NeTfS1SP3AvXK/s+sam8CZScpzf74IUPMtVK+XTE"
	"BYzEH7Axd7BiQImJYX4y75jUCQlNxulDojn+N9yr/ybqlax9VRen+9PgwaDXjBvs"
	"lQIDAQAB\n"
	"-----END PUBLIC KEY-----\n";

const size_t RSA_PUBKEY3_PEM_LEN = sizeof (RSA_PUBKEY3_PEM);

const uint8_t RSA_PUBKEY3_DER[] = {
	0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,
	0x00,0xbe,0x68,0x99,0x03,0xed,0xde,0xc5,0x61,0x07,0x96,0xa5,0xb9,0x96,0x20,0xb8,
	0x00,0xa8,0xc2,0x28,0xcf,0x36,0x28,0x01,0x51,0xb0,0xcb,0x1b,0xf3,0xb7,0x7b,0xf3,
	0xaf,0x54,0x6f,0xbd,0xf1,0x06,0xe2,0xab,0x6c,0x9f,0x3e,0x39,0x57,0xdc,0xa6,0xd2,
	0xe0,0x22,0x80,0x2c,0xdf,0x7d,0x46,0x9f,0x8f,0xa2,0xee,0x02,0x73,0x74,0x42,0xcf,
	0xf5,0x1c,0xa7,0xb2,0xaf,0x3e,0x1c,0x4a,0xba,0xd1,0x31,0x26,0x0d,0x80,0x33,0xfd,
	0x4d,0xfb,0xcd,0x5a,0x1d,0xca,0x7d,0x2a,0x4c,0x34,0x15,0x41,0xd2,0x86,0xf0,0xdf,
	0xa8,0x5f,0x6c,0x63,0xa4,0x8c,0x0c,0x61,0x73,0xc7,0xde,0xf5,0x26,0xd3,0x0a,0x71,
	0x8f,0x68,0x55,0x9e,0xc3,0xc6,0xae,0xcc,0xab,0x62,0xa4,0x84,0x49,0xb4,0x67,0x56,
	0x0c,0xbe,0x12,0xfe,0x21,0x93,0xf4,0x30,0x52,0xea,0x9f,0xa7,0x66,0x1b,0x1f,0x14,
	0x6e,0x7d,0x36,0xf5,0x91,0xac,0x23,0x3a,0xdb,0x81,0xa9,0xe4,0x4c,0xd3,0x95,0x71,
	0x38,0x0c,0x98,0x3a,0x6b,0xdf,0x48,0x47,0x62,0x0b,0x91,0x9d,0x15,0x65,0xf3,0xba,
	0x6a,0xfb,0x35,0xe4,0xdf,0x4b,0x54,0x8f,0xdc,0x0b,0xd7,0x2b,0xfb,0x3e,0xb1,0xa9,
	0xbc,0x09,0x94,0x9c,0xa7,0x37,0xfb,0xe0,0x85,0x0f,0x32,0xd5,0x4a,0xf9,0x74,0xc4,
	0x05,0x8c,0xc4,0x1f,0xb0,0x31,0x77,0xb0,0x62,0x40,0x89,0x89,0x61,0x7e,0x32,0xef,
	0x98,0xd4,0x09,0x09,0x4d,0xc6,0xe9,0x43,0xa2,0x39,0xfe,0x37,0xdc,0xab,0xff,0x26,
	0xea,0x95,0xac,0x7d,0x55,0x17,0xa7,0xfb,0xd3,0xe0,0xc1,0xa0,0xd7,0x8c,0x1b,0xec,
	0x95,0x02,0x03,0x01,0x00,0x01
};

const size_t RSA_PUBKEY3_DER_LEN = sizeof (RSA_PUBKEY3_DER);

const char RSA_PRIVKEY3_PEM[] = "-----BEGIN RSA PRIVATE KEY-----\n"
	"MIIEpAIBAAKCAQEAvmiZA+3exWEHlqW5liC4AKjCKM82KAFRsMsb87d7869Ub73x"
	"BuKrbJ8+OVfcptLgIoAs331Gn4+i7gJzdELP9Rynsq8+HEq60TEmDYAz/U37zVod"
	"yn0qTDQVQdKG8N+oX2xjpIwMYXPH3vUm0wpxj2hVnsPGrsyrYqSESbRnVgy+Ev4h"
	"k/QwUuqfp2YbHxRufTb1kawjOtuBqeRM05VxOAyYOmvfSEdiC5GdFWXzumr7NeTf"
	"S1SP3AvXK/s+sam8CZScpzf74IUPMtVK+XTEBYzEH7Axd7BiQImJYX4y75jUCQlN"
	"xulDojn+N9yr/ybqlax9VRen+9PgwaDXjBvslQIDAQABAoIBAF4iOAPJRakvHyFL"
	"LUUbR9yLkfG6/3snq8tLnrYOsCj5NTVJIi/VQAqjb4/J8DxJZKWp2IVk2dVonZQt"
	"ggaoQUdcs0uTd5FlIJbrRXTHPOyt8R7EvpWs64xg82FnQ28yI3uJinl/A1/qbZW8"
	"fUU4lIvhePLUtxUT+mb6Dqyhk7TmHR2qFHH2m1gqWU62W8vKS4tJkdrTP+hn4kPL"
	"O56r+8gndG3TVMCMjhr/EwwvlwBHdhjM+1HIHBKkX2ArEAxNiNMKNR5bMfAVrQ+F"
	"t/QRcN0AVuuPHY+/NrX7IEr3dtzwQY7xneJ0QGR/3JAZkCemMfyOets3VfVSHrAL"
	"oRirCgECgYEA6psgVZltu8ijuzHcsN+juWBckzDWjfaYvqKbzh3TraBXPt3rJvdK"
	"nfM9m4PpjgiHaZl/vvaEDYe+45C4I9/V88B72N4wdREc04ILjmCTbs2s+blpRnaR"
	"ctsasRfgkO00FqQOqLyYQMK3KZ2b5YACnBLMshVu1u4V9AITEZm1wNkCgYEAz8Wv"
	"IZiWyN8vnpqUlVcIWmz2eNij0LffkH6kqNsd98VyX6P+vXgKbhHnLJal9tNm/rWH"
	"OiF2Am8ZGoIFqb3/nAi5ofaqGZ7toOlm8Z28gXo8LCeGb1/2DO/5ek8+TEMQbgJY"
	"ud4Newd1KzNMh8hqRGA7Q2WxyHvKJ+VFlBqBNB0CgYBK5FRxHvZ5wLYL1wIFcI76"
	"aXmD/04uqW7fRFeKd9kQDyRqzDr6CG1IeNLM51JSZgScQEUYd+d1zkSwro0p3pWV"
	"J3ghpeRAKsNR/aykuc22zG+QlJC3zrflu24M5HtqqF49cAfB89qCqeYAofCXVcL/"
	"gbzYiKEGeaCGcXcW4kO0GQKBgQDJSsc6MD/dSkUzTqWm7ZPdL3W2bISA4LNKpTdX"
	"lDm7Y2JEgHh7DYJlUxj5nNYbhIJjQHFLg0F2aDYU9WURJ08t11IpNPVlLxEfdSDT"
	"8rK/ajJDwONAoeKadB/qPD2p2stfGQzmvdenmvkMKn35itRRfD3ONQcBqdSXxEsd"
	"inQkjQKBgQCdNLXQZAQjSf8xkKOJzN2W5zr82NCahvX336YkheQ6MMxIoVPc7PtO"
	"6wiqqB3DggB8AsrV2obgdETQCjyyHvaurfUxXDt9cSf7XVczxPS8IRTb+whaerhA"
	"AlAkNEiufkbnAjnF13WmCYVYeiNz34OhwrttInY6CDKUVK0MJPkNyg==\n"
	"-----END RSA PRIVATE KEY-----\n";

const size_t RSA_PRIVKEY3_PEM_LEN = sizeof (RSA_PRIVKEY3_PEM);

const uint8_t RSA_PRIVKEY3_DER[] = {
	0x30,0x82,0x04,0xa4,0x02,0x01,0x00,0x02,0x82,0x01,0x01,0x00,0xbe,0x68,0x99,0x03,
	0xed,0xde,0xc5,0x61,0x07,0x96,0xa5,0xb9,0x96,0x20,0xb8,0x00,0xa8,0xc2,0x28,0xcf,
	0x36,0x28,0x01,0x51,0xb0,0xcb,0x1b,0xf3,0xb7,0x7b,0xf3,0xaf,0x54,0x6f,0xbd,0xf1,
	0x06,0xe2,0xab,0x6c,0x9f,0x3e,0x39,0x57,0xdc,0xa6,0xd2,0xe0,0x22,0x80,0x2c,0xdf,
	0x7d,0x46,0x9f,0x8f,0xa2,0xee,0x02,0x73,0x74,0x42,0xcf,0xf5,0x1c,0xa7,0xb2,0xaf,
	0x3e,0x1c,0x4a,0xba,0xd1,0x31,0x26,0x0d,0x80,0x33,0xfd,0x4d,0xfb,0xcd,0x5a,0x1d,
	0xca,0x7d,0x2a,0x4c,0x34,0x15,0x41,0xd2,0x86,0xf0,0xdf,0xa8,0x5f,0x6c,0x63,0xa4,
	0x8c,0x0c,0x61,0x73,0xc7,0xde,0xf5,0x26,0xd3,0x0a,0x71,0x8f,0x68,0x55,0x9e,0xc3,
	0xc6,0xae,0xcc,0xab,0x62,0xa4,0x84,0x49,0xb4,0x67,0x56,0x0c,0xbe,0x12,0xfe,0x21,
	0x93,0xf4,0x30,0x52,0xea,0x9f,0xa7,0x66,0x1b,0x1f,0x14,0x6e,0x7d,0x36,0xf5,0x91,
	0xac,0x23,0x3a,0xdb,0x81,0xa9,0xe4,0x4c,0xd3,0x95,0x71,0x38,0x0c,0x98,0x3a,0x6b,
	0xdf,0x48,0x47,0x62,0x0b,0x91,0x9d,0x15,0x65,0xf3,0xba,0x6a,0xfb,0x35,0xe4,0xdf,
	0x4b,0x54,0x8f,0xdc,0x0b,0xd7,0x2b,0xfb,0x3e,0xb1,0xa9,0xbc,0x09,0x94,0x9c,0xa7,
	0x37,0xfb,0xe0,0x85,0x0f,0x32,0xd5,0x4a,0xf9,0x74,0xc4,0x05,0x8c,0xc4,0x1f,0xb0,
	0x31,0x77,0xb0,0x62,0x40,0x89,0x89,0x61,0x7e,0x32,0xef,0x98,0xd4,0x09,0x09,0x4d,
	0xc6,0xe9,0x43,0xa2,0x39,0xfe,0x37,0xdc,0xab,0xff,0x26,0xea,0x95,0xac,0x7d,0x55,
	0x17,0xa7,0xfb,0xd3,0xe0,0xc1,0xa0,0xd7,0x8c,0x1b,0xec,0x95,0x02,0x03,0x01,0x00,
	0x01,0x02,0x82,0x01,0x00,0x5e,0x22,0x38,0x03,0xc9,0x45,0xa9,0x2f,0x1f,0x21,0x4b,
	0x2d,0x45,0x1b,0x47,0xdc,0x8b,0x91,0xf1,0xba,0xff,0x7b,0x27,0xab,0xcb,0x4b,0x9e,
	0xb6,0x0e,0xb0,0x28,0xf9,0x35,0x35,0x49,0x22,0x2f,0xd5,0x40,0x0a,0xa3,0x6f,0x8f,
	0xc9,0xf0,0x3c,0x49,0x64,0xa5,0xa9,0xd8,0x85,0x64,0xd9,0xd5,0x68,0x9d,0x94,0x2d,
	0x82,0x06,0xa8,0x41,0x47,0x5c,0xb3,0x4b,0x93,0x77,0x91,0x65,0x20,0x96,0xeb,0x45,
	0x74,0xc7,0x3c,0xec,0xad,0xf1,0x1e,0xc4,0xbe,0x95,0xac,0xeb,0x8c,0x60,0xf3,0x61,
	0x67,0x43,0x6f,0x32,0x23,0x7b,0x89,0x8a,0x79,0x7f,0x03,0x5f,0xea,0x6d,0x95,0xbc,
	0x7d,0x45,0x38,0x94,0x8b,0xe1,0x78,0xf2,0xd4,0xb7,0x15,0x13,0xfa,0x66,0xfa,0x0e,
	0xac,0xa1,0x93,0xb4,0xe6,0x1d,0x1d,0xaa,0x14,0x71,0xf6,0x9b,0x58,0x2a,0x59,0x4e,
	0xb6,0x5b,0xcb,0xca,0x4b,0x8b,0x49,0x91,0xda,0xd3,0x3f,0xe8,0x67,0xe2,0x43,0xcb,
	0x3b,0x9e,0xab,0xfb,0xc8,0x27,0x74,0x6d,0xd3,0x54,0xc0,0x8c,0x8e,0x1a,0xff,0x13,
	0x0c,0x2f,0x97,0x00,0x47,0x76,0x18,0xcc,0xfb,0x51,0xc8,0x1c,0x12,0xa4,0x5f,0x60,
	0x2b,0x10,0x0c,0x4d,0x88,0xd3,0x0a,0x35,0x1e,0x5b,0x31,0xf0,0x15,0xad,0x0f,0x85,
	0xb7,0xf4,0x11,0x70,0xdd,0x00,0x56,0xeb,0x8f,0x1d,0x8f,0xbf,0x36,0xb5,0xfb,0x20,
	0x4a,0xf7,0x76,0xdc,0xf0,0x41,0x8e,0xf1,0x9d,0xe2,0x74,0x40,0x64,0x7f,0xdc,0x90,
	0x19,0x90,0x27,0xa6,0x31,0xfc,0x8e,0x7a,0xdb,0x37,0x55,0xf5,0x52,0x1e,0xb0,0x0b,
	0xa1,0x18,0xab,0x0a,0x01,0x02,0x81,0x81,0x00,0xea,0x9b,0x20,0x55,0x99,0x6d,0xbb,
	0xc8,0xa3,0xbb,0x31,0xdc,0xb0,0xdf,0xa3,0xb9,0x60,0x5c,0x93,0x30,0xd6,0x8d,0xf6,
	0x98,0xbe,0xa2,0x9b,0xce,0x1d,0xd3,0xad,0xa0,0x57,0x3e,0xdd,0xeb,0x26,0xf7,0x4a,
	0x9d,0xf3,0x3d,0x9b,0x83,0xe9,0x8e,0x08,0x87,0x69,0x99,0x7f,0xbe,0xf6,0x84,0x0d,
	0x87,0xbe,0xe3,0x90,0xb8,0x23,0xdf,0xd5,0xf3,0xc0,0x7b,0xd8,0xde,0x30,0x75,0x11,
	0x1c,0xd3,0x82,0x0b,0x8e,0x60,0x93,0x6e,0xcd,0xac,0xf9,0xb9,0x69,0x46,0x76,0x91,
	0x72,0xdb,0x1a,0xb1,0x17,0xe0,0x90,0xed,0x34,0x16,0xa4,0x0e,0xa8,0xbc,0x98,0x40,
	0xc2,0xb7,0x29,0x9d,0x9b,0xe5,0x80,0x02,0x9c,0x12,0xcc,0xb2,0x15,0x6e,0xd6,0xee,
	0x15,0xf4,0x02,0x13,0x11,0x99,0xb5,0xc0,0xd9,0x02,0x81,0x81,0x00,0xcf,0xc5,0xaf,
	0x21,0x98,0x96,0xc8,0xdf,0x2f,0x9e,0x9a,0x94,0x95,0x57,0x08,0x5a,0x6c,0xf6,0x78,
	0xd8,0xa3,0xd0,0xb7,0xdf,0x90,0x7e,0xa4,0xa8,0xdb,0x1d,0xf7,0xc5,0x72,0x5f,0xa3,
	0xfe,0xbd,0x78,0x0a,0x6e,0x11,0xe7,0x2c,0x96,0xa5,0xf6,0xd3,0x66,0xfe,0xb5,0x87,
	0x3a,0x21,0x76,0x02,0x6f,0x19,0x1a,0x82,0x05,0xa9,0xbd,0xff,0x9c,0x08,0xb9,0xa1,
	0xf6,0xaa,0x19,0x9e,0xed,0xa0,0xe9,0x66,0xf1,0x9d,0xbc,0x81,0x7a,0x3c,0x2c,0x27,
	0x86,0x6f,0x5f,0xf6,0x0c,0xef,0xf9,0x7a,0x4f,0x3e,0x4c,0x43,0x10,0x6e,0x02,0x58,
	0xb9,0xde,0x0d,0x7b,0x07,0x75,0x2b,0x33,0x4c,0x87,0xc8,0x6a,0x44,0x60,0x3b,0x43,
	0x65,0xb1,0xc8,0x7b,0xca,0x27,0xe5,0x45,0x94,0x1a,0x81,0x34,0x1d,0x02,0x81,0x80,
	0x4a,0xe4,0x54,0x71,0x1e,0xf6,0x79,0xc0,0xb6,0x0b,0xd7,0x02,0x05,0x70,0x8e,0xfa,
	0x69,0x79,0x83,0xff,0x4e,0x2e,0xa9,0x6e,0xdf,0x44,0x57,0x8a,0x77,0xd9,0x10,0x0f,
	0x24,0x6a,0xcc,0x3a,0xfa,0x08,0x6d,0x48,0x78,0xd2,0xcc,0xe7,0x52,0x52,0x66,0x04,
	0x9c,0x40,0x45,0x18,0x77,0xe7,0x75,0xce,0x44,0xb0,0xae,0x8d,0x29,0xde,0x95,0x95,
	0x27,0x78,0x21,0xa5,0xe4,0x40,0x2a,0xc3,0x51,0xfd,0xac,0xa4,0xb9,0xcd,0xb6,0xcc,
	0x6f,0x90,0x94,0x90,0xb7,0xce,0xb7,0xe5,0xbb,0x6e,0x0c,0xe4,0x7b,0x6a,0xa8,0x5e,
	0x3d,0x70,0x07,0xc1,0xf3,0xda,0x82,0xa9,0xe6,0x00,0xa1,0xf0,0x97,0x55,0xc2,0xff,
	0x81,0xbc,0xd8,0x88,0xa1,0x06,0x79,0xa0,0x86,0x71,0x77,0x16,0xe2,0x43,0xb4,0x19,
	0x02,0x81,0x81,0x00,0xc9,0x4a,0xc7,0x3a,0x30,0x3f,0xdd,0x4a,0x45,0x33,0x4e,0xa5,
	0xa6,0xed,0x93,0xdd,0x2f,0x75,0xb6,0x6c,0x84,0x80,0xe0,0xb3,0x4a,0xa5,0x37,0x57,
	0x94,0x39,0xbb,0x63,0x62,0x44,0x80,0x78,0x7b,0x0d,0x82,0x65,0x53,0x18,0xf9,0x9c,
	0xd6,0x1b,0x84,0x82,0x63,0x40,0x71,0x4b,0x83,0x41,0x76,0x68,0x36,0x14,0xf5,0x65,
	0x11,0x27,0x4f,0x2d,0xd7,0x52,0x29,0x34,0xf5,0x65,0x2f,0x11,0x1f,0x75,0x20,0xd3,
	0xf2,0xb2,0xbf,0x6a,0x32,0x43,0xc0,0xe3,0x40,0xa1,0xe2,0x9a,0x74,0x1f,0xea,0x3c,
	0x3d,0xa9,0xda,0xcb,0x5f,0x19,0x0c,0xe6,0xbd,0xd7,0xa7,0x9a,0xf9,0x0c,0x2a,0x7d,
	0xf9,0x8a,0xd4,0x51,0x7c,0x3d,0xce,0x35,0x07,0x01,0xa9,0xd4,0x97,0xc4,0x4b,0x1d,
	0x8a,0x74,0x24,0x8d,0x02,0x81,0x81,0x00,0x9d,0x34,0xb5,0xd0,0x64,0x04,0x23,0x49,
	0xff,0x31,0x90,0xa3,0x89,0xcc,0xdd,0x96,0xe7,0x3a,0xfc,0xd8,0xd0,0x9a,0x86,0xf5,
	0xf7,0xdf,0xa6,0x24,0x85,0xe4,0x3a,0x30,0xcc,0x48,0xa1,0x53,0xdc,0xec,0xfb,0x4e,
	0xeb,0x08,0xaa,0xa8,0x1d,0xc3,0x82,0x00,0x7c,0x02,0xca,0xd5,0xda,0x86,0xe0,0x74,
	0x44,0xd0,0x0a,0x3c,0xb2,0x1e,0xf6,0xae,0xad,0xf5,0x31,0x5c,0x3b,0x7d,0x71,0x27,
	0xfb,0x5d,0x57,0x33,0xc4,0xf4,0xbc,0x21,0x14,0xdb,0xfb,0x08,0x5a,0x7a,0xb8,0x40,
	0x02,0x50,0x24,0x34,0x48,0xae,0x7e,0x46,0xe7,0x02,0x39,0xc5,0xd7,0x75,0xa6,0x09,
	0x85,0x58,0x7a,0x23,0x73,0xdf,0x83,0xa1,0xc2,0xbb,0x6d,0x22,0x76,0x3a,0x08,0x32,
	0x94,0x54,0xad,0x0c,0x24,0xf9,0x0d,0xca
};

const size_t RSA_PRIVKEY3_DER_LEN = sizeof (RSA_PRIVKEY3_DER);

/* The SHA256 signature for the string "Test". */
const uint8_t RSA_SIGNATURE3_TEST[] = {
	0x04,0x46,0x71,0xc0,0xd9,0xae,0x76,0x55,0x47,0x11,0xaf,0xe6,0xa6,0xc1,0xbe,0xe6,
	0x6d,0xa0,0x7c,0x89,0x38,0x9b,0xac,0x67,0x1d,0x9d,0x2a,0x7c,0x94,0x87,0xe0,0x5f,
	0x27,0x64,0xac,0xf4,0xfd,0x95,0x2d,0x9d,0x42,0x82,0xdf,0x95,0xc9,0x1f,0xe6,0xdd,
	0xe6,0x90,0xff,0x25,0x39,0x42,0xe7,0x4d,0x5b,0xe6,0x6a,0x79,0x02,0xcc,0x66,0x0b,
	0x19,0x7d,0x17,0xa7,0xae,0xf0,0xbf,0xe6,0x77,0xbb,0xef,0x2b,0xa0,0x2e,0x9b,0x03,
	0xea,0x05,0x56,0xe3,0x68,0x09,0x2e,0xb6,0x6e,0x6a,0x8a,0xf4,0x20,0xc4,0x4b,0x83,
	0x5c,0x7d,0xb3,0x40,0x54,0x18,0x20,0x71,0x91,0xe1,0xfe,0xf0,0xfe,0xc0,0x08,0x56,
	0x96,0xa3,0x4e,0x62,0x4b,0x9c,0x6a,0xbd,0x9f,0xd0,0x59,0xe6,0x51,0xaf,0x46,0xaa,
	0x5d,0xb3,0x86,0x54,0x54,0xb2,0xdf,0x47,0xdc,0x1d,0x3e,0xad,0x7d,0x91,0x7a,0x13,
	0x7e,0x36,0x42,0x02,0xeb,0x77,0x29,0x4c,0x1a,0xff,0x66,0x86,0x6a,0x37,0xbd,0xf6,
	0x09,0xad,0x4a,0x33,0x19,0x2a,0xa0,0xdc,0x20,0xb4,0x93,0xa4,0x3f,0xc5,0x08,0x8b,
	0x41,0x24,0x6f,0xee,0x77,0xb3,0xbf,0xf9,0x42,0xc7,0x31,0x3d,0x2d,0x2a,0x7a,0xe8,
	0x8f,0x63,0x31,0x3c,0x9d,0xce,0x79,0xc4,0x65,0x94,0x2d,0x19,0x18,0x15,0xcb,0x5e,
	0xf6,0xbf,0x69,0x1a,0x6e,0x67,0xfb,0x88,0x32,0x67,0x93,0x65,0xab,0xb7,0x8b,0x3e,
	0x0b,0xf6,0x0b,0x79,0x67,0xe6,0x0c,0x42,0xa3,0xdb,0x56,0xad,0xb8,0xba,0x93,0x36,
	0x5e,0xc5,0x9e,0x8d,0xda,0x09,0xb3,0xa3,0x46,0xeb,0x5e,0x7f,0xfc,0x4b,0x5c,0xb0
};

/* The SHA256 signature for the string "Test2". */
const uint8_t RSA_SIGNATURE3_TEST2[] = {
	0x40,0x62,0xe7,0xa6,0x1c,0x6d,0x5b,0xd8,0xdd,0xcb,0x89,0x30,0x20,0xf4,0x31,0xcf,
	0x85,0x3a,0xeb,0x99,0x5f,0xb7,0xdf,0xb5,0xa4,0x37,0x87,0x27,0xac,0xbb,0xbb,0x87,
	0xe9,0xb4,0xf3,0xe6,0xea,0xb5,0x59,0xed,0xf1,0x64,0x87,0xe7,0x41,0xd6,0x18,0xce,
	0xe5,0x38,0x7c,0xe3,0x7e,0x01,0xbe,0x85,0x8b,0xfa,0xc1,0xbc,0xdc,0xbb,0x8f,0x9c,
	0x52,0xe5,0x91,0x4c,0x1a,0x60,0x73,0x88,0xbd,0xc9,0x74,0x1d,0x1e,0xcf,0xfe,0xb9,
	0x23,0x5c,0x35,0xd7,0xb5,0x4e,0x21,0x74,0xa6,0xa8,0x2d,0xc2,0xc1,0x55,0x4f,0x6d,
	0x52,0x8e,0xbf,0xc3,0x58,0x96,0x7d,0x67,0x79,0xf5,0x4e,0x65,0xf3,0x94,0xcf,0xef,
	0x57,0xf5,0x5b,0xf1,0xf5,0xe1,0xc2,0x1d,0xf7,0xe7,0xe4,0xab,0x94,0x54,0x6f,0x1f,
	0x00,0xb8,0x9d,0x3c,0x5f,0xbe,0xf0,0xdf,0x4c,0xd3,0xa8,0x4a,0xd1,0xe2,0x45,0x36,
	0x6d,0xcd,0xef,0x4b,0x2f,0xed,0xcc,0x28,0x3d,0x51,0x98,0x31,0x23,0x01,0xf7,0xba,
	0x46,0x50,0x85,0x85,0x57,0x00,0x57,0x07,0xbf,0x70,0xe5,0x4f,0x92,0x40,0x7d,0x5f,
	0xce,0x74,0xa7,0xdb,0x74,0xb9,0xb9,0x4f,0x51,0x31,0xdb,0x7f,0xbe,0x28,0x28,0x30,
	0x80,0x99,0x40,0x05,0xc4,0xbd,0xdf,0xc9,0x85,0x82,0x70,0xcd,0x64,0x18,0x2b,0xa4,
	0x57,0xfa,0x46,0xab,0xde,0x73,0x34,0x14,0x26,0xf7,0x67,0xf2,0x28,0x10,0xdf,0x5c,
	0x4f,0xe5,0x98,0x0d,0x96,0xb6,0xfa,0xbb,0x89,0x3f,0x83,0x2a,0x82,0xfc,0xe8,0x65,
	0xf5,0x95,0x88,0x33,0xd0,0xee,0xac,0xf9,0x75,0x88,0xdc,0x16,0xb7,0xc3,0xd8,0x93
};

/* The SHA256 signature for the string "Nope". */
const uint8_t RSA_SIGNATURE3_NOPE[] = {
	0x6b,0xae,0xa6,0xba,0xb3,0x8b,0x2e,0x3b,0xd1,0xd8,0x54,0x92,0x65,0x72,0x2f,0x82,
	0x2b,0x6b,0x7d,0x6e,0x68,0x9b,0x4f,0xd3,0xba,0x4b,0xf0,0xd0,0xb4,0x6b,0x52,0xdf,
	0xc2,0x4d,0x81,0xcc,0x76,0x68,0x5f,0x48,0x95,0x65,0x04,0x7c,0x3e,0x97,0x4e,0xb6,
	0x07,0xf1,0x3d,0x76,0xa4,0x80,0xce,0x9c,0xaf,0xa6,0x46,0x16,0x2e,0xe5,0x85,0x8b,
	0x9c,0x17,0xd5,0x50,0xc6,0xac,0x31,0x70,0x24,0xde,0xe9,0xe6,0x91,0xf8,0xb8,0xb0,
	0x9b,0x29,0x89,0x09,0x77,0x58,0x2a,0x04,0xad,0x65,0xbe,0x89,0xb7,0x7a,0x3c,0xea,
	0xaa,0x71,0xa9,0x1e,0x4b,0xf1,0x41,0x16,0xb3,0xcc,0x4d,0xd1,0xa5,0x8f,0xda,0xa4,
	0xea,0xfc,0xf5,0x17,0xf7,0x75,0x5c,0xdd,0x54,0xcd,0x16,0x8e,0xdc,0xf5,0x63,0x49,
	0x85,0xd9,0xda,0xef,0xf4,0xfb,0xfa,0x41,0x69,0x85,0x49,0x9e,0xdd,0x9a,0xe4,0x55,
	0x66,0x0e,0xaa,0x73,0xa9,0xa2,0xa2,0x21,0x36,0x83,0xd9,0x74,0xff,0x0a,0x1a,0xba,
	0xb2,0x8c,0xf7,0xba,0xc0,0x41,0x2e,0x46,0x9d,0xed,0xfb,0x31,0x09,0x06,0x17,0x9e,
	0x0c,0x9a,0x12,0xdf,0x27,0x70,0xd3,0xe1,0x78,0x41,0x5c,0x1a,0x28,0xfe,0x24,0xc6,
	0x5c,0xc0,0x91,0x1b,0x94,0xf6,0xda,0xbc,0x63,0xb4,0xce,0x6f,0x0c,0xb1,0xb4,0xbe,
	0xac,0x75,0x2e,0x3c,0xc8,0x37,0x74,0x24,0x45,0x54,0xdb,0xb7,0xe0,0x21,0x27,0xed,
	0x4c,0x49,0xdc,0x01,0x6e,0x94,0x81,0x39,0xff,0x9c,0x43,0xa9,0xb0,0xd1,0x96,0x8a,
	0x47,0x79,0x33,0x76,0xa2,0x0a,0x4b,0xe6,0x68,0x53,0xdc,0xaa,0x7d,0x90,0xf6,0xab
};

/* The SHA256 signature for the string "Bad". */
const uint8_t RSA_SIGNATURE3_BAD[] = {
	0x83,0x9d,0x5f,0xef,0xbb,0xf9,0xad,0xe0,0xd0,0xdc,0x51,0x52,0x94,0x16,0x35,0x47,
	0x71,0x06,0x7c,0x88,0x88,0x9a,0xda,0x8c,0x57,0x66,0x0b,0xaf,0x93,0x65,0xc0,0xc8,
	0x82,0x01,0x41,0x66,0x22,0xe8,0xa5,0x16,0xa5,0xba,0x9e,0x5b,0xb3,0xd5,0x4f,0xa6,
	0x10,0xec,0xa9,0xfa,0x05,0xf2,0x7e,0x25,0x5b,0x1c,0x3d,0xb9,0x3d,0x60,0x7f,0x67,
	0xf1,0x86,0x1b,0x48,0x72,0xc0,0x1b,0x6a,0xad,0x42,0xd1,0xcb,0x9e,0x3d,0xd2,0x51,
	0x61,0xff,0x4f,0x66,0xee,0x70,0xa4,0x7c,0x5a,0xf6,0xbe,0x4d,0x13,0xc2,0xf4,0x76,
	0x52,0x91,0xed,0x3b,0x6e,0xe3,0xfb,0x86,0x76,0xaf,0x13,0x11,0xaa,0xb9,0x89,0x94,
	0x91,0xca,0x23,0xcf,0xe7,0xe8,0xeb,0x52,0x2d,0x93,0x4e,0xb4,0xbc,0x1f,0x45,0xc0,
	0x18,0xe5,0x96,0x4a,0xe8,0x52,0x55,0x6a,0x92,0x47,0xa8,0x1b,0xe3,0x24,0x99,0xe1,
	0x31,0x72,0x1f,0x8e,0xd2,0xd9,0xc3,0xd0,0xf0,0x72,0xa3,0x70,0x62,0x55,0xfd,0xea,
	0x9a,0x52,0x75,0x26,0x96,0x10,0x83,0x09,0x22,0xe8,0x75,0x44,0x37,0x8f,0xef,0x42,
	0x54,0x06,0x6d,0xc5,0xec,0x3f,0x61,0xb9,0xd4,0x99,0x9a,0xec,0x96,0xb7,0x05,0xc3,
	0xb9,0x1a,0xcf,0xdf,0x6f,0xac,0xfd,0x4a,0x67,0x1c,0xd3,0xe5,0x13,0xbb,0x1a,0xb3,
	0xf0,0x1e,0x6b,0x49,0xb9,0xa4,0x7c,0xc5,0x8c,0x84,0x1f,0xaf,0x8f,0x14,0x2f,0x7d,
	0x1e,0xeb,0x78,0x09,0x83,0xed,0xff,0x81,0xf7,0xd3,0x10,0x0e,0xb0,0x42,0xa3,0x77,
	0x65,0xa5,0xb3,0x24,0xa2,0x50,0x64,0x95,0x63,0xbb,0x78,0xed,0x81,0xfa,0x95,0xad
};

#if (RSA_MAX_KEY_LENGTH >= RSA_KEY_LENGTH_3K)
const struct rsa_public_key RSA3K_PUBLIC_KEY = {
	.modulus = {
		0xc3,0xbf,0x4d,0x08,0x08,0x25,0xea,0xaa,0x72,0x37,0xcd,0xe3,0x08,0x01,0xf1,0x62,
		0x12,0x73,0x35,0xff,0x48,0x72,0x75,0x17,0xfa,0xe9,0xca,0xa5,0x2f,0x11,0x83,0x13,
		0x64,0x7f,0x8f,0x9e,0x01,0xe5,0xc4,0x5e,0x88,0xd8,0xc4,0xb5,0x79,0x61,0x06,0x4c,
		0xee,0xb8,0x35,0xdf,0xb9,0x4f,0x75,0x0e,0x61,0xac,0xd6,0x3d,0x7f,0x2a,0x6b,0x6e,
		0xc0,0x27,0xab,0x3c,0x6c,0xac,0x50,0xf4,0x1b,0x47,0xaf,0x36,0x1e,0x10,0x3f,0x44,
		0x8d,0x9e,0x23,0xd3,0x12,0xf6,0xd0,0x27,0xa9,0x2e,0xce,0x80,0xa1,0xe2,0xe7,0x45,
		0xe3,0x1e,0xd3,0xe4,0xd4,0xac,0x7d,0x1c,0x97,0x0d,0x83,0x9d,0x91,0xe9,0xb1,0x8f,
		0xc2,0xf5,0x54,0x1f,0xfc,0xe6,0x0c,0xcf,0x05,0xb1,0x45,0xbf,0x26,0x03,0xa5,0x97,
		0xd3,0x24,0xab,0x9f,0xfc,0x2f,0xc1,0xda,0xb4,0x03,0xe1,0x0f,0x83,0x2b,0xcf,0xeb,
		0x6d,0x68,0xd5,0xa5,0x9c,0xe2,0xfa,0x18,0xc3,0x73,0x5e,0x4a,0xf7,0x03,0x69,0x58,
		0xad,0x0b,0x4c,0x1b,0x94,0xf8,0x68,0x17,0xa3,0xfb,0xbc,0x68,0xce,0x53,0x8d,0x4c,
		0xf1,0xbc,0xdc,0xd4,0xee,0x8b,0xd4,0xca,0xd7,0x1e,0xba,0xab,0x7f,0x5e,0x6d,0x92,
		0x99,0xfb,0xe6,0x26,0x8a,0xf1,0xec,0xd9,0x2f,0x43,0x01,0x45,0x61,0x67,0xdd,0x5e,
		0xac,0x0a,0xc4,0x87,0x57,0xce,0xce,0x1f,0x73,0x90,0x8d,0x94,0x18,0xf7,0x7f,0x44,
		0xef,0x4d,0xc1,0x96,0x14,0x9e,0xd8,0x72,0x9f,0x14,0x3a,0x0c,0xd3,0x09,0x16,0x8a,
		0x7f,0x87,0x4f,0xa6,0xb7,0x45,0x73,0xbc,0x2c,0xf1,0x81,0xe5,0xb6,0x3c,0xf9,0x39,
		0x28,0x51,0x40,0x6a,0xc0,0x91,0xd2,0xfa,0x5b,0x7b,0x46,0x82,0xe4,0x1b,0xc9,0x9a,
		0x17,0x5e,0x71,0x53,0x2d,0x94,0x3c,0x2b,0x8d,0x13,0xb0,0x0d,0x6a,0x0b,0x6c,0x0a,
		0x0d,0x7c,0x88,0xcf,0x5f,0x59,0x59,0x12,0x05,0x59,0x59,0xcf,0x28,0xe6,0xcd,0x81,
		0xb7,0xbb,0xc4,0xa2,0xc5,0xf6,0x6e,0xbb,0x0f,0xc4,0x06,0xc0,0x1c,0xae,0x53,0x34,
		0xe1,0x6f,0xab,0xb5,0xed,0x6a,0xb4,0x3e,0x89,0x89,0x79,0x99,0x8b,0x06,0xa9,0xf5,
		0xff,0x9e,0xf5,0x62,0x4d,0x33,0xed,0xf4,0xe9,0x61,0xee,0x5c,0x92,0x27,0x92,0x1c,
		0x80,0x5f,0x8d,0x4e,0x30,0x32,0xdf,0x3b,0xe9,0x93,0xd8,0xe3,0x84,0x49,0x7b,0xfb,
		0x5d,0xe0,0x96,0x0b,0x31,0x30,0x8f,0xfc,0x50,0xbb,0x0e,0x42,0x36,0x94,0x50,0x75
	},
	.mod_length = 384,
	.exponent = 65537
};
#endif

const char RSA3K_PUBKEY_PEM[] = "-----BEGIN PUBLIC KEY-----\n"
	"MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAw79NCAgl6qpyN83jCAHx"
	"YhJzNf9IcnUX+unKpS8RgxNkf4+eAeXEXojYxLV5YQZM7rg137lPdQ5hrNY9fypr"
	"bsAnqzxsrFD0G0evNh4QP0SNniPTEvbQJ6kuzoCh4udF4x7T5NSsfRyXDYOdkemx"
	"j8L1VB/85gzPBbFFvyYDpZfTJKuf/C/B2rQD4Q+DK8/rbWjVpZzi+hjDc15K9wNp"
	"WK0LTBuU+GgXo/u8aM5TjUzxvNzU7ovUytceuqt/Xm2SmfvmJorx7NkvQwFFYWfd"
	"XqwKxIdXzs4fc5CNlBj3f0TvTcGWFJ7Ycp8UOgzTCRaKf4dPprdFc7ws8YHltjz5"
	"OShRQGrAkdL6W3tGguQbyZoXXnFTLZQ8K40TsA1qC2wKDXyIz19ZWRIFWVnPKObN"
	"gbe7xKLF9m67D8QGwByuUzThb6u17Wq0PomJeZmLBqn1/571Yk0z7fTpYe5ckieS"
	"HIBfjU4wMt876ZPY44RJe/td4JYLMTCP/FC7DkI2lFB1AgMBAAE=\n"
	"-----END PUBLIC KEY-----\n";

const size_t RSA3K_PUBKEY_PEM_LEN = sizeof (RSA3K_PUBKEY_PEM);

const uint8_t RSA3K_PUBKEY_DER[] = {
	0x30,0x82,0x01,0xa2,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x01,0x8f,0x00,0x30,0x82,0x01,0x8a,0x02,0x82,0x01,0x81,
	0x00,0xc3,0xbf,0x4d,0x08,0x08,0x25,0xea,0xaa,0x72,0x37,0xcd,0xe3,0x08,0x01,0xf1,
	0x62,0x12,0x73,0x35,0xff,0x48,0x72,0x75,0x17,0xfa,0xe9,0xca,0xa5,0x2f,0x11,0x83,
	0x13,0x64,0x7f,0x8f,0x9e,0x01,0xe5,0xc4,0x5e,0x88,0xd8,0xc4,0xb5,0x79,0x61,0x06,
	0x4c,0xee,0xb8,0x35,0xdf,0xb9,0x4f,0x75,0x0e,0x61,0xac,0xd6,0x3d,0x7f,0x2a,0x6b,
	0x6e,0xc0,0x27,0xab,0x3c,0x6c,0xac,0x50,0xf4,0x1b,0x47,0xaf,0x36,0x1e,0x10,0x3f,
	0x44,0x8d,0x9e,0x23,0xd3,0x12,0xf6,0xd0,0x27,0xa9,0x2e,0xce,0x80,0xa1,0xe2,0xe7,
	0x45,0xe3,0x1e,0xd3,0xe4,0xd4,0xac,0x7d,0x1c,0x97,0x0d,0x83,0x9d,0x91,0xe9,0xb1,
	0x8f,0xc2,0xf5,0x54,0x1f,0xfc,0xe6,0x0c,0xcf,0x05,0xb1,0x45,0xbf,0x26,0x03,0xa5,
	0x97,0xd3,0x24,0xab,0x9f,0xfc,0x2f,0xc1,0xda,0xb4,0x03,0xe1,0x0f,0x83,0x2b,0xcf,
	0xeb,0x6d,0x68,0xd5,0xa5,0x9c,0xe2,0xfa,0x18,0xc3,0x73,0x5e,0x4a,0xf7,0x03,0x69,
	0x58,0xad,0x0b,0x4c,0x1b,0x94,0xf8,0x68,0x17,0xa3,0xfb,0xbc,0x68,0xce,0x53,0x8d,
	0x4c,0xf1,0xbc,0xdc,0xd4,0xee,0x8b,0xd4,0xca,0xd7,0x1e,0xba,0xab,0x7f,0x5e,0x6d,
	0x92,0x99,0xfb,0xe6,0x26,0x8a,0xf1,0xec,0xd9,0x2f,0x43,0x01,0x45,0x61,0x67,0xdd,
	0x5e,0xac,0x0a,0xc4,0x87,0x57,0xce,0xce,0x1f,0x73,0x90,0x8d,0x94,0x18,0xf7,0x7f,
	0x44,0xef,0x4d,0xc1,0x96,0x14,0x9e,0xd8,0x72,0x9f,0x14,0x3a,0x0c,0xd3,0x09,0x16,
	0x8a,0x7f,0x87,0x4f,0xa6,0xb7,0x45,0x73,0xbc,0x2c,0xf1,0x81,0xe5,0xb6,0x3c,0xf9,
	0x39,0x28,0x51,0x40,0x6a,0xc0,0x91,0xd2,0xfa,0x5b,0x7b,0x46,0x82,0xe4,0x1b,0xc9,
	0x9a,0x17,0x5e,0x71,0x53,0x2d,0x94,0x3c,0x2b,0x8d,0x13,0xb0,0x0d,0x6a,0x0b,0x6c,
	0x0a,0x0d,0x7c,0x88,0xcf,0x5f,0x59,0x59,0x12,0x05,0x59,0x59,0xcf,0x28,0xe6,0xcd,
	0x81,0xb7,0xbb,0xc4,0xa2,0xc5,0xf6,0x6e,0xbb,0x0f,0xc4,0x06,0xc0,0x1c,0xae,0x53,
	0x34,0xe1,0x6f,0xab,0xb5,0xed,0x6a,0xb4,0x3e,0x89,0x89,0x79,0x99,0x8b,0x06,0xa9,
	0xf5,0xff,0x9e,0xf5,0x62,0x4d,0x33,0xed,0xf4,0xe9,0x61,0xee,0x5c,0x92,0x27,0x92,
	0x1c,0x80,0x5f,0x8d,0x4e,0x30,0x32,0xdf,0x3b,0xe9,0x93,0xd8,0xe3,0x84,0x49,0x7b,
	0xfb,0x5d,0xe0,0x96,0x0b,0x31,0x30,0x8f,0xfc,0x50,0xbb,0x0e,0x42,0x36,0x94,0x50,
	0x75,0x02,0x03,0x01,0x00,0x01
};

const size_t RSA3K_PUBKEY_DER_LEN = sizeof (RSA3K_PUBKEY_DER);

const char RSA3K_PRIVKEY_PEM[] = "-----BEGIN RSA PRIVATE KEY-----\n"
	"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\n"
	"-----END RSA PRIVATE KEY-----\n";

const size_t RSA3K_PRIVKEY_PEM_LEN = sizeof (RSA3K_PRIVKEY_PEM);

const uint8_t RSA3K_PRIVKEY_DER[] = {
	0x30,0x82,0x06,0xe4,0x02,0x01,0x00,0x02,0x82,0x01,0x81,0x00,0xc3,0xbf,0x4d,0x08,
	0x08,0x25,0xea,0xaa,0x72,0x37,0xcd,0xe3,0x08,0x01,0xf1,0x62,0x12,0x73,0x35,0xff,
	0x48,0x72,0x75,0x17,0xfa,0xe9,0xca,0xa5,0x2f,0x11,0x83,0x13,0x64,0x7f,0x8f,0x9e,
	0x01,0xe5,0xc4,0x5e,0x88,0xd8,0xc4,0xb5,0x79,0x61,0x06,0x4c,0xee,0xb8,0x35,0xdf,
	0xb9,0x4f,0x75,0x0e,0x61,0xac,0xd6,0x3d,0x7f,0x2a,0x6b,0x6e,0xc0,0x27,0xab,0x3c,
	0x6c,0xac,0x50,0xf4,0x1b,0x47,0xaf,0x36,0x1e,0x10,0x3f,0x44,0x8d,0x9e,0x23,0xd3,
	0x12,0xf6,0xd0,0x27,0xa9,0x2e,0xce,0x80,0xa1,0xe2,0xe7,0x45,0xe3,0x1e,0xd3,0xe4,
	0xd4,0xac,0x7d,0x1c,0x97,0x0d,0x83,0x9d,0x91,0xe9,0xb1,0x8f,0xc2,0xf5,0x54,0x1f,
	0xfc,0xe6,0x0c,0xcf,0x05,0xb1,0x45,0xbf,0x26,0x03,0xa5,0x97,0xd3,0x24,0xab,0x9f,
	0xfc,0x2f,0xc1,0xda,0xb4,0x03,0xe1,0x0f,0x83,0x2b,0xcf,0xeb,0x6d,0x68,0xd5,0xa5,
	0x9c,0xe2,0xfa,0x18,0xc3,0x73,0x5e,0x4a,0xf7,0x03,0x69,0x58,0xad,0x0b,0x4c,0x1b,
	0x94,0xf8,0x68,0x17,0xa3,0xfb,0xbc,0x68,0xce,0x53,0x8d,0x4c,0xf1,0xbc,0xdc,0xd4,
	0xee,0x8b,0xd4,0xca,0xd7,0x1e,0xba,0xab,0x7f,0x5e,0x6d,0x92,0x99,0xfb,0xe6,0x26,
	0x8a,0xf1,0xec,0xd9,0x2f,0x43,0x01,0x45,0x61,0x67,0xdd,0x5e,0xac,0x0a,0xc4,0x87,
	0x57,0xce,0xce,0x1f,0x73,0x90,0x8d,0x94,0x18,0xf7,0x7f,0x44,0xef,0x4d,0xc1,0x96,
	0x14,0x9e,0xd8,0x72,0x9f,0x14,0x3a,0x0c,0xd3,0x09,0x16,0x8a,0x7f,0x87,0x4f,0xa6,
	0xb7,0x45,0x73,0xbc,0x2c,0xf1,0x81,0xe5,0xb6,0x3c,0xf9,0x39,0x28,0x51,0x40,0x6a,
	0xc0,0x91,0xd2,0xfa,0x5b,0x7b,0x46,0x82,0xe4,0x1b,0xc9,0x9a,0x17,0x5e,0x71,0x53,
	0x2d,0x94,0x3c,0x2b,0x8d,0x13,0xb0,0x0d,0x6a,0x0b,0x6c,0x0a,0x0d,0x7c,0x88,0xcf,
	0x5f,0x59,0x59,0x12,0x05,0x59,0x59,0xcf,0x28,0xe6,0xcd,0x81,0xb7,0xbb,0xc4,0xa2,
	0xc5,0xf6,0x6e,0xbb,0x0f,0xc4,0x06,0xc0,0x1c,0xae,0x53,0x34,0xe1,0x6f,0xab,0xb5,
	0xed,0x6a,0xb4,0x3e,0x89,0x89,0x79,0x99,0x8b,0x06,0xa9,0xf5,0xff,0x9e,0xf5,0x62,
	0x4d,0x33,0xed,0xf4,0xe9,0x61,0xee,0x5c,0x92,0x27,0x92,0x1c,0x80,0x5f,0x8d,0x4e,
	0x30,0x32,0xdf,0x3b,0xe9,0x93,0xd8,0xe3,0x84,0x49,0x7b,0xfb,0x5d,0xe0,0x96,0x0b,
	0x31,0x30,0x8f,0xfc,0x50,0xbb,0x0e,0x42,0x36,0x94,0x50,0x75,0x02,0x03,0x01,0x00,
	0x01,0x02,0x82,0x01,0x80,0x49,0x46,0x92,0x7a,0x80,0x3a,0x59,0x67,0x26,0xcc,0x97,
	0x08,0xf6,0xd5,0x6b,0x5b,0xd0,0x16,0x4a,0xcf,0x5e,0x7a,0x62,0x34,0xf0,0xdb,0x95,
	0xdd,0x52,0x0a,0x57,0x2b,0xea,0x42,0x0a,0x2c,0x16,0xff,0xc1,0x0b,0xb6,0x64,0x96,
	0xf6,0x6c,0x12,0x92,0xfe,0x37,0x9a,0xc3,0xa8,0x15,0x41,0x96,0x4b,0x24,0xeb,0x43,
	0x63,0xcf,0xf7,0xbc,0x31,0xc0,0x42,0xd9,0x4a,0x0c,0x50,0x51,0x19,0xa0,0x20,0xac,
	0x89,0x30,0xa5,0xda,0x59,0x3a,0x3e,0x49,0xa0,0xd9,0x07,0x85,0x92,0x63,0x35,0xbf,
	0x5d,0xcd,0xbc,0x17,0xe1,0x44,0x8d,0x24,0xbb,0x13,0x95,0xe2,0x5b,0xd2,0x7b,0xdf,
	0x9a,0x1b,0xa6,0x04,0xaf,0x11,0x47,0x2f,0x0f,0xae,0x67,0x1b,0xc2,0x5f,0x9a,0x25,
	0xc6,0xd1,0x5f,0x2a,0x1c,0xf4,0x90,0x54,0xa2,0xd6,0x0f,0xb6,0x9c,0xbd,0x28,0x7a,
	0x96,0x88,0xfe,0xdc,0x9d,0x7f,0xde,0x6f,0xa3,0xc8,0x5f,0xfb,0x49,0x4b,0xd9,0x23,
	0x22,0x22,0xe7,0xa7,0x06,0xe7,0xf8,0x43,0xac,0x4b,0x8e,0xd5,0xc0,0x8b,0xc5,0x4f,
	0x99,0x58,0x2b,0x54,0xc8,0xc9,0xf1,0x6e,0x25,0x53,0x8b,0x0a,0xc4,0x47,0xd5,0x1c,
	0x01,0xd8,0xf3,0x2b,0x46,0xbe,0x63,0x8c,0xbf,0x6f,0x49,0x8f,0x69,0xe8,0x21,0x62,
	0xc3,0x2f,0xd9,0x97,0x2a,0x21,0xf5,0x17,0x05,0x3b,0xc7,0xc7,0x93,0x78,0x13,0xe2,
	0x54,0xb7,0xbc,0x52,0x15,0x93,0xf5,0xf5,0x99,0xea,0xeb,0xe0,0xcd,0x22,0x9e,0xec,
	0xd5,0xf9,0xb7,0xf8,0xbf,0x2b,0xa7,0x62,0xeb,0x0c,0x82,0xd5,0x5e,0x86,0x5d,0xa5,
	0x6d,0x14,0x79,0xaa,0xfd,0x45,0xee,0xe9,0x19,0xf5,0x97,0x0a,0xe3,0x60,0x24,0x74,
	0x29,0x12,0x21,0x8f,0xc4,0x23,0xaf,0xf7,0x1d,0x05,0xca,0x75,0xa6,0xc6,0xd5,0x13,
	0x2b,0x12,0x79,0xca,0x77,0xa7,0x5a,0x3a,0xf9,0x6d,0x21,0x6e,0x28,0x11,0x48,0x8b,
	0x6c,0xf5,0x8e,0x6a,0xd9,0xc0,0x78,0x1e,0x97,0x10,0x83,0x68,0x99,0x83,0x31,0x5a,
	0x88,0xd5,0x23,0xe9,0x3a,0xfc,0xa2,0xf7,0xa6,0x02,0x44,0x58,0x8a,0xd0,0x63,0x2c,
	0x63,0xce,0xd9,0x53,0x02,0x5a,0x1a,0x3b,0xf5,0x64,0x8d,0x5e,0x3a,0x49,0xde,0x97,
	0xdf,0xe4,0xb0,0x45,0xaa,0x28,0x10,0x00,0xaa,0xce,0x60,0x10,0xda,0x0c,0xd7,0xb0,
	0x9a,0x5d,0x46,0xa8,0xca,0xdf,0x4e,0x41,0xf0,0x78,0x20,0x27,0x60,0x8a,0x52,0x9c,
	0x00,0xdf,0xc2,0x28,0xe1,0x02,0x81,0xc1,0x00,0xf7,0xa8,0x9e,0x24,0x53,0x9d,0x27,
	0xcb,0xe6,0xbd,0x49,0xb6,0x7b,0xf4,0xfa,0x32,0x10,0x5d,0x04,0x06,0x83,0x8a,0xf8,
	0x6e,0x67,0x2f,0x9d,0x43,0x83,0xff,0x90,0xe7,0x6f,0x3e,0x36,0x11,0x33,0x90,0xbc,
	0x93,0x4e,0x82,0x0e,0x90,0x48,0xd3,0x41,0xfa,0x43,0xcc,0xa8,0x8b,0x13,0xd1,0x18,
	0x4c,0x2c,0xad,0x23,0xe9,0x98,0xaf,0x4a,0x7f,0x80,0xa2,0x09,0xbb,0xd4,0x50,0x4b,
	0x67,0xbc,0xa1,0x7e,0xb0,0x7f,0x78,0xb7,0x21,0x42,0x46,0x79,0x25,0x85,0x4b,0x3c,
	0x14,0x56,0x1c,0xd3,0x5b,0x55,0x9b,0x9c,0x5c,0x7b,0xf5,0xd1,0xca,0xe3,0x7d,0x1e,
	0xff,0x50,0x9d,0xfe,0x7f,0x51,0x11,0x2a,0x69,0xfd,0xd1,0xe0,0xf0,0x78,0x4c,0xe6,
	0xa8,0x58,0xbb,0xa0,0x9a,0x97,0xb6,0xeb,0x24,0xa1,0xeb,0x81,0xa6,0x85,0xd9,0x93,
	0xa0,0x71,0xbf,0x45,0xc3,0x05,0x74,0x29,0x34,0x18,0x60,0xe6,0x51,0x30,0x10,0xa4,
	0xf0,0x14,0xb0,0x0b,0x28,0xfa,0x15,0xf1,0x8c,0x1c,0xd8,0x22,0x5c,0x8c,0x26,0x87,
	0x83,0x4c,0xc5,0xa5,0x74,0x37,0x84,0xfc,0xbd,0xf9,0xdc,0x4b,0x52,0x07,0x33,0x4a,
	0xf0,0xfd,0x7b,0x6a,0x84,0xca,0x0e,0xc7,0xcd,0x02,0x81,0xc1,0x00,0xca,0x57,0x16,
	0xae,0xd4,0x8d,0xdf,0x6d,0x2f,0x5c,0x55,0x4e,0xb1,0xb9,0xa5,0x7f,0x0d,0x9d,0x86,
	0xa0,0xb5,0xbe,0x20,0xda,0x0d,0x00,0x46,0x98,0x4a,0x3e,0x5b,0xb9,0x6b,0xc7,0xb1,
	0xd6,0x5e,0xd4,0x52,0xba,0x84,0x4b,0xd8,0x1a,0x1f,0x50,0xc2,0x0c,0xe5,0x2a,0x64,
	0xf7,0x84,0xcc,0x45,0xcd,0x5a,0xc9,0xca,0x4d,0x5c,0xe0,0x0d,0x0c,0x0f,0x77,0xe0,
	0x78,0xa7,0x70,0x08,0x75,0xe7,0x3d,0x53,0x9a,0x45,0x63,0x63,0x8d,0xf2,0xac,0xf0,
	0xc5,0x09,0xae,0x01,0x7c,0x8b,0x0f,0x97,0xc5,0x7b,0x68,0xf7,0x6e,0x30,0x48,0xcd,
	0x14,0x9d,0x78,0xff,0x87,0x27,0xb7,0xe5,0x34,0x43,0x87,0x89,0xb1,0x3b,0x26,0xc9,
	0x7b,0x67,0x76,0x7e,0x3e,0x85,0xe0,0x12,0x24,0xba,0xd0,0x35,0x84,0x8b,0xf6,0x87,
	0x31,0x2e,0xec,0x24,0x8f,0x6e,0xbe,0x84,0x88,0x0c,0x73,0xe6,0x18,0x28,0x3e,0xf1,
	0xf7,0xbd,0xbe,0x87,0x24,0x3d,0x2b,0xaa,0x6e,0x33,0x7c,0x21,0xfe,0x8d,0x99,0xd6,
	0x95,0x07,0xc9,0x5b,0xc7,0x74,0x44,0xbc,0xac,0xa0,0x8f,0x4c,0x8f,0xf0,0xba,0xf9,
	0x3a,0xb9,0x2e,0x69,0xb7,0x3b,0xb7,0x5d,0xd4,0xd2,0x4d,0xb3,0x49,0x02,0x81,0xc1,
	0x00,0xce,0x0e,0x7d,0x85,0xbc,0x0c,0x06,0x10,0xa0,0xea,0xdd,0x69,0xf7,0xb8,0xdc,
	0x72,0xcb,0x2a,0x99,0x2e,0xd2,0x43,0xce,0x70,0x0d,0x6a,0x90,0x6e,0x9c,0x65,0x07,
	0x2b,0x88,0x63,0x3a,0x99,0x15,0x4e,0x57,0x98,0x38,0xb9,0xfd,0x64,0x0f,0x33,0xb6,
	0xb1,0x83,0xb7,0xc4,0x83,0xf2,0xf9,0x06,0x3e,0x5a,0xed,0xb3,0xf3,0xa8,0x16,0x30,
	0xe5,0xe5,0x20,0xec,0xf8,0x5a,0xae,0x74,0x0e,0xdb,0xe3,0x82,0x85,0x57,0x8a,0x18,
	0xd4,0x93,0x50,0x0f,0x7c,0x28,0x6b,0x70,0x91,0x7b,0x14,0x80,0xc6,0x7d,0x73,0xfb,
	0xa4,0xf7,0x7e,0x90,0x0f,0x3f,0x37,0xdb,0x92,0x92,0x80,0xe2,0x3f,0x0c,0x34,0x3c,
	0x15,0xf4,0x19,0xac,0x0e,0x68,0x09,0x93,0xe0,0x7d,0xf3,0x9e,0xad,0x01,0x8e,0x30,
	0x17,0x4a,0xa1,0xa8,0x3d,0xe5,0x20,0x22,0xb4,0x5b,0xef,0xc9,0x1b,0x7a,0x6e,0x2b,
	0xda,0x2c,0x6e,0x73,0x33,0x19,0xca,0xbf,0x71,0x01,0xc5,0x77,0x83,0xa0,0x90,0xa1,
	0x68,0xf2,0x96,0xe2,0x00,0x1e,0x9b,0xf0,0x24,0x4e,0xbc,0x23,0xed,0x8e,0x44,0x18,
	0x05,0xf8,0xde,0x51,0xcc,0xee,0x30,0xbf,0x29,0xc3,0xbd,0xeb,0xe2,0x90,0x3b,0xbc,
	0x01,0x02,0x81,0xc1,0x00,0x8d,0x61,0xd6,0xee,0xa8,0x84,0xcd,0x86,0x7c,0x5e,0x57,
	0x19,0x5a,0xa3,0xee,0x98,0xdd,0x89,0xa1,0x85,0x70,0x18,0x7e,0xd9,0xfd,0xd5,0xa0,
	0x7e,0x4e,0xfa,0x4d,0x9b,0x3d,0x4d,0x56,0xdd,0x04,0x7b,0xf5,0xa6,0x70,0x44,0x92,
	0xa6,0x86,0x15,0x26,0xd2,0x5d,0xda,0x86,0x9c,0x51,0x45,0x6e,0xcc,0xb3,0xd0,0x66,
	0x34,0x32,0x5e,0x37,0x9f,0xa2,0xbb,0x4f,0xb4,0xde,0xc2,0x30,0x97,0x39,0xd1,0xa7,
	0x36,0x17,0x9f,0xff,0xf3,0x32,0x8b,0x56,0xdd,0x47,0x0b,0x37,0xec,0xaf,0x3a,0x61,
	0x01,0x53,0x5f,0x1f,0xec,0xf5,0x7e,0x19,0x16,0x7b,0x86,0x0d,0x7e,0x81,0xe9,0x44,
	0x15,0x85,0xce,0x12,0x0f,0x2d,0xd6,0xc7,0x58,0x1c,0x0e,0x36,0xde,0x37,0x2b,0x3f,
	0x62,0x3c,0xca,0xb9,0x6a,0x79,0x65,0xf4,0x47,0x10,0x93,0x5e,0x64,0x7e,0xac,0x4e,
	0xec,0xc5,0x4e,0xc2,0x8b,0x44,0xab,0xde,0xe5,0x0d,0xc7,0x30,0xa4,0xc8,0xbd,0x57,
	0x24,0x13,0x83,0x7c,0x39,0x62,0xf6,0x08,0x73,0x2f,0xf2,0xa9,0xd7,0xaf,0x4d,0x4c,
	0x4c,0x8f,0x10,0x32,0x1e,0x2d,0xc6,0x67,0xd9,0x79,0x85,0x8d,0xc6,0xc3,0xca,0x37,
	0x9d,0x3a,0xa9,0xa2,0x49,0x02,0x81,0xc0,0x5f,0xec,0x0d,0xc2,0x43,0x30,0xaf,0xa7,
	0x5d,0x23,0x36,0xba,0x07,0x1c,0xd4,0xce,0xe3,0x37,0x3c,0xc4,0x3e,0xbf,0x20,0xa8,
	0x3e,0x8e,0x7f,0xcd,0x6e,0x3e,0x0e,0x97,0xc4,0x53,0x3c,0xc8,0x04,0xc8,0x36,0xce,
	0xa4,0x7f,0x6d,0xbb,0xb8,0x08,0x0e,0x69,0x6d,0xa0,0x4c,0xea,0x3b,0x9a,0xee,0x3f,
	0x76,0xee,0xe4,0xc5,0x21,0x00,0xc4,0xd1,0x72,0xbc,0x6d,0xd5,0xa2,0x30,0xb2,0x5e,
	0x59,0x20,0x02,0x0c,0xad,0xc0,0x82,0xaa,0x44,0x43,0xa2,0xeb,0xc7,0x8b,0x3b,0x97,
	0x9a,0xb3,0xd5,0x51,0x25,0xd5,0x76,0x4b,0xc7,0x44,0x70,0x7b,0x1e,0x1d,0x07,0x8e,
	0xa5,0xe1,0x5b,0xcc,0x14,0xbd,0x20,0x4b,0x1b,0x83,0x94,0xa4,0x55,0x57,0x79,0x75,
	0x3f,0x0e,0xce,0xe5,0x30,0x5a,0x8c,0x2b,0x83,0xeb,0x5c,0xeb,0x32,0x54,0x1c,0x85,
	0xb9,0xe2,0xf0,0x45,0xee,0x83,0x6c,0x7f,0x10,0x6e,0x6c,0xfc,0x7e,0xef,0x14,0x98,
	0x8d,0xb5,0x9c,0xa5,0x80,0x84,0x3f,0x2b,0x86,0xf6,0xfa,0xc0,0xe0,0x01,0x0c,0x96,
	0x47,0x89,0x6c,0x0c,0x4f,0x6c,0xd8,0x56,0x13,0x38,0x90,0x1d,0x7e,0x56,0x8e,0xb2,
	0xa3,0xe5,0x36,0x32,0x42,0xbf,0xd1,0xe2
};

const size_t RSA3K_PRIVKEY_DER_LEN = sizeof (RSA3K_PRIVKEY_DER);

#if (RSA_MAX_KEY_LENGTH >= RSA_KEY_LENGTH_4K)
const struct rsa_public_key RSA4K_PUBLIC_KEY = {
	.modulus = {
		0x98,0x89,0xee,0x22,0x92,0xbd,0xfe,0xe8,0xdd,0xe3,0xa3,0x00,0xee,0x3b,0x90,0xa2,
		0x5f,0xf5,0xa1,0x80,0x71,0x8d,0xec,0x3a,0x57,0x20,0xe8,0x67,0x60,0xec,0xb3,0x43,
		0xfe,0x02,0x9b,0x61,0xa5,0x73,0xa0,0x8f,0x40,0xae,0x9c,0xed,0x63,0xc1,0xd5,0x4b,
		0x87,0xaf,0xea,0x9a,0x6d,0xc9,0x7d,0x70,0x0b,0x3c,0x3d,0x29,0xdc,0x70,0x3e,0x3f,
		0x85,0x14,0x3e,0x19,0xfc,0xba,0xed,0xa1,0x28,0x47,0x11,0x55,0x44,0xf8,0xf8,0x86,
		0x0d,0x57,0x1a,0xa7,0x3d,0x88,0xbb,0x09,0x6d,0x1e,0x5e,0x8f,0xf7,0x6a,0x18,0x43,
		0x03,0x9f,0x09,0xad,0x40,0x5a,0xae,0x46,0xad,0xfd,0x6e,0xf0,0x62,0x24,0x18,0xe7,
		0xaf,0x5c,0x3b,0x4f,0x8e,0xc1,0xfe,0xd9,0xd7,0x88,0xeb,0xb3,0xe9,0x59,0x8b,0x68,
		0x49,0x50,0xbb,0xcd,0xbf,0x91,0x17,0x56,0xc6,0x62,0x00,0x81,0x73,0x8c,0xc8,0xef,
		0x4c,0x4e,0xa3,0xc5,0xcb,0x9b,0xf7,0x3a,0xb9,0xa8,0xfa,0x38,0x78,0xd7,0x8e,0x81,
		0x07,0x76,0x65,0xd0,0x92,0x6b,0xb9,0x13,0xa0,0x24,0x12,0x2f,0xe1,0xb0,0x97,0x9c,
		0xb0,0x8f,0xc8,0xdb,0x57,0xe5,0x96,0x52,0x4b,0xa8,0xb8,0xc4,0x22,0x1a,0x87,0x89,
		0x39,0xff,0x85,0x3e,0x77,0x3b,0xce,0x66,0x1b,0xaf,0xa2,0x22,0x0e,0xf5,0xf4,0xca,
		0x1c,0x13,0x6a,0x8d,0x2a,0xb1,0xa6,0x91,0xec,0x76,0xaf,0xb2,0x4a,0x25,0x29,0xaa,
		0x30,0x08,0x61,0xe6,0x84,0x96,0xe0,0xef,0x3b,0xbf,0x77,0xbb,0x26,0xd7,0xf6,0x46,
		0xee,0x4a,0x59,0xec,0x46,0x8c,0xf4,0x2e,0x50,0xa4,0xda,0x01,0x9d,0x13,0xcc,0x97,
		0xa8,0xd3,0x47,0x92,0x79,0xcb,0xec,0xcf,0x7b,0xdd,0xc7,0xda,0x45,0x18,0x31,0x7b,
		0xf2,0x00,0x14,0x65,0x44,0xc6,0x4b,0xd6,0x7c,0x51,0x4e,0xbc,0xcd,0xae,0x65,0x41,
		0x11,0xdb,0x42,0x25,0xaa,0x74,0xfd,0xa6,0x91,0x67,0xea,0xbb,0x57,0xfc,0x86,0x83,
		0x95,0xf5,0x0a,0xbc,0x95,0xa7,0x35,0x65,0xe2,0x2c,0xf2,0x01,0xdc,0x10,0x78,0xe4,
		0x82,0xc4,0xb3,0x0c,0x0d,0x59,0x74,0x59,0xb6,0xe8,0xe8,0x63,0xe7,0x78,0x03,0x31,
		0xbf,0xa5,0x6a,0xac,0x2b,0x98,0x35,0x39,0xad,0x24,0x29,0xfa,0x81,0x02,0x70,0x35,
		0x7c,0xec,0xa2,0x66,0x18,0x53,0xc8,0x4a,0x56,0x84,0x50,0x26,0xf2,0xb4,0xf4,0xbb,
		0x16,0x02,0x49,0xa8,0xc9,0x86,0xce,0xaa,0xd7,0xc2,0x93,0x2d,0x52,0x59,0x68,0x87,
		0x06,0xd9,0xaa,0x73,0x44,0xa2,0xa7,0x62,0xb8,0x49,0x4a,0x11,0xc7,0x81,0x41,0x49,
		0x52,0x7a,0xae,0x52,0xf2,0x41,0x45,0x12,0x64,0xb2,0x7e,0xbb,0x68,0x7a,0x7d,0x6d,
		0x2d,0xd3,0x6d,0x04,0x88,0x16,0x3b,0x68,0x9f,0x34,0x90,0x89,0xc4,0xd0,0x9e,0x97,
		0x7c,0x2e,0x28,0x7c,0xd8,0x64,0xe7,0x08,0x5b,0x8c,0x37,0x21,0x6b,0xc9,0x1d,0x7b,
		0x8b,0x9a,0xa3,0xd8,0x91,0xf4,0x19,0xc1,0x58,0xf2,0x9a,0x6d,0xc1,0xd2,0x3a,0x1e,
		0x2b,0x11,0xfc,0x35,0xba,0x90,0xdb,0x39,0x4d,0x0e,0x57,0x85,0x96,0xb6,0x78,0x0c,
		0x62,0xc6,0xd5,0xc7,0x64,0x30,0x63,0x17,0x86,0x51,0xbe,0xc6,0xb1,0x4b,0xb2,0x8f,
		0xf0,0x41,0x13,0xce,0xab,0x8c,0x49,0xbe,0x94,0xd9,0xa4,0x3a,0x7e,0x65,0x95,0xf1
	},
	.mod_length = 512,
	.exponent = 65537
};
#endif

const char RSA4K_PUBKEY_PEM[] = "-----BEGIN PUBLIC KEY-----\n"
	"MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmInuIpK9/ujd46MA7juQ"
	"ol/1oYBxjew6VyDoZ2Dss0P+ApthpXOgj0CunO1jwdVLh6/qmm3JfXALPD0p3HA+"
	"P4UUPhn8uu2hKEcRVUT4+IYNVxqnPYi7CW0eXo/3ahhDA58JrUBarkat/W7wYiQY"
	"569cO0+Owf7Z14jrs+lZi2hJULvNv5EXVsZiAIFzjMjvTE6jxcub9zq5qPo4eNeO"
	"gQd2ZdCSa7kToCQSL+Gwl5ywj8jbV+WWUkuouMQiGoeJOf+FPnc7zmYbr6IiDvX0"
	"yhwTao0qsaaR7HavskolKaowCGHmhJbg7zu/d7sm1/ZG7kpZ7EaM9C5QpNoBnRPM"
	"l6jTR5J5y+zPe93H2kUYMXvyABRlRMZL1nxRTrzNrmVBEdtCJap0/aaRZ+q7V/yG"
	"g5X1CryVpzVl4izyAdwQeOSCxLMMDVl0Wbbo6GPneAMxv6VqrCuYNTmtJCn6gQJw"
	"NXzsomYYU8hKVoRQJvK09LsWAkmoyYbOqtfCky1SWWiHBtmqc0Sip2K4SUoRx4FB"
	"SVJ6rlLyQUUSZLJ+u2h6fW0t020EiBY7aJ80kInE0J6XfC4ofNhk5whbjDcha8kd"
	"e4uao9iR9BnBWPKabcHSOh4rEfw1upDbOU0OV4WWtngMYsbVx2QwYxeGUb7GsUuy"
	"j/BBE86rjEm+lNmkOn5llfECAwEAAQ==\n"
	"-----END PUBLIC KEY-----\n";

const size_t RSA4K_PUBKEY_PEM_LEN = sizeof (RSA4K_PUBKEY_PEM);

const uint8_t RSA4K_PUBKEY_DER[] = {
	0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,
	0x00,0x98,0x89,0xee,0x22,0x92,0xbd,0xfe,0xe8,0xdd,0xe3,0xa3,0x00,0xee,0x3b,0x90,
	0xa2,0x5f,0xf5,0xa1,0x80,0x71,0x8d,0xec,0x3a,0x57,0x20,0xe8,0x67,0x60,0xec,0xb3,
	0x43,0xfe,0x02,0x9b,0x61,0xa5,0x73,0xa0,0x8f,0x40,0xae,0x9c,0xed,0x63,0xc1,0xd5,
	0x4b,0x87,0xaf,0xea,0x9a,0x6d,0xc9,0x7d,0x70,0x0b,0x3c,0x3d,0x29,0xdc,0x70,0x3e,
	0x3f,0x85,0x14,0x3e,0x19,0xfc,0xba,0xed,0xa1,0x28,0x47,0x11,0x55,0x44,0xf8,0xf8,
	0x86,0x0d,0x57,0x1a,0xa7,0x3d,0x88,0xbb,0x09,0x6d,0x1e,0x5e,0x8f,0xf7,0x6a,0x18,
	0x43,0x03,0x9f,0x09,0xad,0x40,0x5a,0xae,0x46,0xad,0xfd,0x6e,0xf0,0x62,0x24,0x18,
	0xe7,0xaf,0x5c,0x3b,0x4f,0x8e,0xc1,0xfe,0xd9,0xd7,0x88,0xeb,0xb3,0xe9,0x59,0x8b,
	0x68,0x49,0x50,0xbb,0xcd,0xbf,0x91,0x17,0x56,0xc6,0x62,0x00,0x81,0x73,0x8c,0xc8,
	0xef,0x4c,0x4e,0xa3,0xc5,0xcb,0x9b,0xf7,0x3a,0xb9,0xa8,0xfa,0x38,0x78,0xd7,0x8e,
	0x81,0x07,0x76,0x65,0xd0,0x92,0x6b,0xb9,0x13,0xa0,0x24,0x12,0x2f,0xe1,0xb0,0x97,
	0x9c,0xb0,0x8f,0xc8,0xdb,0x57,0xe5,0x96,0x52,0x4b,0xa8,0xb8,0xc4,0x22,0x1a,0x87,
	0x89,0x39,0xff,0x85,0x3e,0x77,0x3b,0xce,0x66,0x1b,0xaf,0xa2,0x22,0x0e,0xf5,0xf4,
	0xca,0x1c,0x13,0x6a,0x8d,0x2a,0xb1,0xa6,0x91,0xec,0x76,0xaf,0xb2,0x4a,0x25,0x29,
	0xaa,0x30,0x08,0x61,0xe6,0x84,0x96,0xe0,0xef,0x3b,0xbf,0x77,0xbb,0x26,0xd7,0xf6,
	0x46,0xee,0x4a,0x59,0xec,0x46,0x8c,0xf4,0x2e,0x50,0xa4,0xda,0x01,0x9d,0x13,0xcc,
	0x97,0xa8,0xd3,0x47,0x92,0x79,0xcb,0xec,0xcf,0x7b,0xdd,0xc7,0xda,0x45,0x18,0x31,
	0x7b,0xf2,0x00,0x14,0x65,0x44,0xc6,0x4b,0xd6,0x7c,0x51,0x4e,0xbc,0xcd,0xae,0x65,
	0x41,0x11,0xdb,0x42,0x25,0xaa,0x74,0xfd,0xa6,0x91,0x67,0xea,0xbb,0x57,0xfc,0x86,
	0x83,0x95,0xf5,0x0a,0xbc,0x95,0xa7,0x35,0x65,0xe2,0x2c,0xf2,0x01,0xdc,0x10,0x78,
	0xe4,0x82,0xc4,0xb3,0x0c,0x0d,0x59,0x74,0x59,0xb6,0xe8,0xe8,0x63,0xe7,0x78,0x03,
	0x31,0xbf,0xa5,0x6a,0xac,0x2b,0x98,0x35,0x39,0xad,0x24,0x29,0xfa,0x81,0x02,0x70,
	0x35,0x7c,0xec,0xa2,0x66,0x18,0x53,0xc8,0x4a,0x56,0x84,0x50,0x26,0xf2,0xb4,0xf4,
	0xbb,0x16,0x02,0x49,0xa8,0xc9,0x86,0xce,0xaa,0xd7,0xc2,0x93,0x2d,0x52,0x59,0x68,
	0x87,0x06,0xd9,0xaa,0x73,0x44,0xa2,0xa7,0x62,0xb8,0x49,0x4a,0x11,0xc7,0x81,0x41,
	0x49,0x52,0x7a,0xae,0x52,0xf2,0x41,0x45,0x12,0x64,0xb2,0x7e,0xbb,0x68,0x7a,0x7d,
	0x6d,0x2d,0xd3,0x6d,0x04,0x88,0x16,0x3b,0x68,0x9f,0x34,0x90,0x89,0xc4,0xd0,0x9e,
	0x97,0x7c,0x2e,0x28,0x7c,0xd8,0x64,0xe7,0x08,0x5b,0x8c,0x37,0x21,0x6b,0xc9,0x1d,
	0x7b,0x8b,0x9a,0xa3,0xd8,0x91,0xf4,0x19,0xc1,0x58,0xf2,0x9a,0x6d,0xc1,0xd2,0x3a,
	0x1e,0x2b,0x11,0xfc,0x35,0xba,0x90,0xdb,0x39,0x4d,0x0e,0x57,0x85,0x96,0xb6,0x78,
	0x0c,0x62,0xc6,0xd5,0xc7,0x64,0x30,0x63,0x17,0x86,0x51,0xbe,0xc6,0xb1,0x4b,0xb2,
	0x8f,0xf0,0x41,0x13,0xce,0xab,0x8c,0x49,0xbe,0x94,0xd9,0xa4,0x3a,0x7e,0x65,0x95,
	0xf1,0x02,0x03,0x01,0x00,0x01
};

const uint8_t RSA4K_PUBKEY_DER_HASH[] = {
	0x96,0x5e,0xe9,0x19,0x4d,0x06,0xb9,0x61,0x8d,0x66,0xe9,0x4c,0xd2,0x16,0x2b,0x8d,
	0x8d,0xaf,0xcf,0xce,0x7f,0xe2,0x99,0xa4,0xde,0x69,0x3e,0xc9,0xbf,0xe5,0x50,0x12
};

const size_t RSA4K_PUBKEY_DER_HASH_LEN = sizeof (RSA4K_PUBKEY_DER_HASH);

const size_t RSA4K_PUBKEY_DER_LEN = sizeof (RSA4K_PUBKEY_DER);

const char RSA4K_PRIVKEY_PEM[] = "-----BEGIN RSA PRIVATE KEY-----\n"
	"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\n"
	"-----END RSA PRIVATE KEY-----\n";

const size_t RSA4K_PRIVKEY_PEM_LEN = sizeof (RSA4K_PRIVKEY_PEM);

const uint8_t RSA4K_PRIVKEY_DER[] = {
	0x30,0x82,0x09,0x28,0x02,0x01,0x00,0x02,0x82,0x02,0x01,0x00,0x98,0x89,0xee,0x22,
	0x92,0xbd,0xfe,0xe8,0xdd,0xe3,0xa3,0x00,0xee,0x3b,0x90,0xa2,0x5f,0xf5,0xa1,0x80,
	0x71,0x8d,0xec,0x3a,0x57,0x20,0xe8,0x67,0x60,0xec,0xb3,0x43,0xfe,0x02,0x9b,0x61,
	0xa5,0x73,0xa0,0x8f,0x40,0xae,0x9c,0xed,0x63,0xc1,0xd5,0x4b,0x87,0xaf,0xea,0x9a,
	0x6d,0xc9,0x7d,0x70,0x0b,0x3c,0x3d,0x29,0xdc,0x70,0x3e,0x3f,0x85,0x14,0x3e,0x19,
	0xfc,0xba,0xed,0xa1,0x28,0x47,0x11,0x55,0x44,0xf8,0xf8,0x86,0x0d,0x57,0x1a,0xa7,
	0x3d,0x88,0xbb,0x09,0x6d,0x1e,0x5e,0x8f,0xf7,0x6a,0x18,0x43,0x03,0x9f,0x09,0xad,
	0x40,0x5a,0xae,0x46,0xad,0xfd,0x6e,0xf0,0x62,0x24,0x18,0xe7,0xaf,0x5c,0x3b,0x4f,
	0x8e,0xc1,0xfe,0xd9,0xd7,0x88,0xeb,0xb3,0xe9,0x59,0x8b,0x68,0x49,0x50,0xbb,0xcd,
	0xbf,0x91,0x17,0x56,0xc6,0x62,0x00,0x81,0x73,0x8c,0xc8,0xef,0x4c,0x4e,0xa3,0xc5,
	0xcb,0x9b,0xf7,0x3a,0xb9,0xa8,0xfa,0x38,0x78,0xd7,0x8e,0x81,0x07,0x76,0x65,0xd0,
	0x92,0x6b,0xb9,0x13,0xa0,0x24,0x12,0x2f,0xe1,0xb0,0x97,0x9c,0xb0,0x8f,0xc8,0xdb,
	0x57,0xe5,0x96,0x52,0x4b,0xa8,0xb8,0xc4,0x22,0x1a,0x87,0x89,0x39,0xff,0x85,0x3e,
	0x77,0x3b,0xce,0x66,0x1b,0xaf,0xa2,0x22,0x0e,0xf5,0xf4,0xca,0x1c,0x13,0x6a,0x8d,
	0x2a,0xb1,0xa6,0x91,0xec,0x76,0xaf,0xb2,0x4a,0x25,0x29,0xaa,0x30,0x08,0x61,0xe6,
	0x84,0x96,0xe0,0xef,0x3b,0xbf,0x77,0xbb,0x26,0xd7,0xf6,0x46,0xee,0x4a,0x59,0xec,
	0x46,0x8c,0xf4,0x2e,0x50,0xa4,0xda,0x01,0x9d,0x13,0xcc,0x97,0xa8,0xd3,0x47,0x92,
	0x79,0xcb,0xec,0xcf,0x7b,0xdd,0xc7,0xda,0x45,0x18,0x31,0x7b,0xf2,0x00,0x14,0x65,
	0x44,0xc6,0x4b,0xd6,0x7c,0x51,0x4e,0xbc,0xcd,0xae,0x65,0x41,0x11,0xdb,0x42,0x25,
	0xaa,0x74,0xfd,0xa6,0x91,0x67,0xea,0xbb,0x57,0xfc,0x86,0x83,0x95,0xf5,0x0a,0xbc,
	0x95,0xa7,0x35,0x65,0xe2,0x2c,0xf2,0x01,0xdc,0x10,0x78,0xe4,0x82,0xc4,0xb3,0x0c,
	0x0d,0x59,0x74,0x59,0xb6,0xe8,0xe8,0x63,0xe7,0x78,0x03,0x31,0xbf,0xa5,0x6a,0xac,
	0x2b,0x98,0x35,0x39,0xad,0x24,0x29,0xfa,0x81,0x02,0x70,0x35,0x7c,0xec,0xa2,0x66,
	0x18,0x53,0xc8,0x4a,0x56,0x84,0x50,0x26,0xf2,0xb4,0xf4,0xbb,0x16,0x02,0x49,0xa8,
	0xc9,0x86,0xce,0xaa,0xd7,0xc2,0x93,0x2d,0x52,0x59,0x68,0x87,0x06,0xd9,0xaa,0x73,
	0x44,0xa2,0xa7,0x62,0xb8,0x49,0x4a,0x11,0xc7,0x81,0x41,0x49,0x52,0x7a,0xae,0x52,
	0xf2,0x41,0x45,0x12,0x64,0xb2,0x7e,0xbb,0x68,0x7a,0x7d,0x6d,0x2d,0xd3,0x6d,0x04,
	0x88,0x16,0x3b,0x68,0x9f,0x34,0x90,0x89,0xc4,0xd0,0x9e,0x97,0x7c,0x2e,0x28,0x7c,
	0xd8,0x64,0xe7,0x08,0x5b,0x8c,0x37,0x21,0x6b,0xc9,0x1d,0x7b,0x8b,0x9a,0xa3,0xd8,
	0x91,0xf4,0x19,0xc1,0x58,0xf2,0x9a,0x6d,0xc1,0xd2,0x3a,0x1e,0x2b,0x11,0xfc,0x35,
	0xba,0x90,0xdb,0x39,0x4d,0x0e,0x57,0x85,0x96,0xb6,0x78,0x0c,0x62,0xc6,0xd5,0xc7,
	0x64,0x30,0x63,0x17,0x86,0x51,0xbe,0xc6,0xb1,0x4b,0xb2,0x8f,0xf0,0x41,0x13,0xce,
	0xab,0x8c,0x49,0xbe,0x94,0xd9,0xa4,0x3a,0x7e,0x65,0x95,0xf1,0x02,0x03,0x01,0x00,
	0x01,0x02,0x82,0x02,0x00,0x66,0x7f,0xd8,0xba,0xf6,0xac,0x21,0x0c,0x4d,0x7d,0xd7,
	0x5c,0x9a,0xb8,0xff,0xd9,0x7c,0x6d,0xcb,0xd6,0x49,0x77,0xba,0x93,0x01,0x55,0x25,
	0x95,0xc1,0xf5,0x8c,0x08,0x56,0x39,0x5e,0x3b,0xe1,0x37,0xaf,0x5e,0x53,0x72,0x82,
	0x14,0xaa,0x81,0xe7,0x57,0xd7,0x97,0x88,0x27,0xb9,0x3a,0x39,0xc5,0xfe,0x66,0xbe,
	0x1a,0xd0,0xfb,0xc3,0x78,0x5f,0x6e,0x58,0xc4,0x91,0xa4,0xf2,0x64,0xe6,0x71,0xca,
	0xdd,0xe7,0x78,0xfd,0x56,0xe6,0xc3,0xef,0x2f,0x0e,0x14,0x40,0xca,0x76,0xbe,0x7f,
	0x80,0x72,0x1a,0xa2,0xae,0xf5,0x51,0xfa,0xe8,0xa6,0x63,0xc8,0xd3,0xc9,0xba,0x90,
	0xbf,0x8a,0xd3,0x02,0xc1,0x3c,0x7e,0xd7,0x84,0x00,0x43,0xaf,0x82,0xa6,0x68,0x65,
	0x2a,0x01,0xd5,0x9f,0xed,0xb5,0xc6,0x40,0x4c,0x63,0x3b,0x95,0xd9,0x43,0x79,0x3b,
	0x29,0xc1,0x81,0x8a,0xcb,0xf2,0x14,0xad,0xcc,0x0d,0xa3,0x82,0x1f,0xbd,0xfe,0x24,
	0x15,0xaa,0x6d,0xfe,0x5e,0x09,0xab,0xaf,0x82,0xd5,0xc0,0xf9,0x1e,0x8c,0xef,0x70,
	0x21,0x28,0xa0,0xc7,0x60,0x0c,0xec,0xb1,0x65,0x62,0xcc,0xed,0x93,0xe3,0x2f,0x3e,
	0xe8,0xdc,0x99,0xc3,0x15,0x9d,0x19,0x6c,0x69,0xab,0x29,0x4e,0xea,0x22,0x14,0x84,
	0xf8,0x29,0xe1,0x70,0x5a,0x17,0x3f,0x9c,0xcb,0xbb,0x32,0xa0,0xe1,0x51,0x69,0xf7,
	0x69,0xf0,0x94,0xc4,0x48,0x8d,0xfa,0x33,0xfe,0xf8,0x7d,0x82,0x2c,0x7f,0x93,0x8b,
	0x5b,0x01,0x21,0x01,0x66,0x6c,0x5d,0x1d,0xcb,0xbd,0x24,0x9e,0x38,0x39,0x0c,0x6d,
	0x49,0xc4,0x49,0x37,0xa2,0x6f,0xbf,0xe9,0x9f,0x0a,0xf4,0x27,0xf7,0xb5,0x65,0x81,
	0x12,0xf0,0xe9,0xe4,0x98,0xc5,0xf3,0xdf,0x28,0xab,0x59,0xca,0x1a,0x41,0x7f,0x1a,
	0xa1,0x04,0x1a,0x27,0x3e,0x33,0x66,0x33,0x18,0x4d,0x43,0xeb,0xa3,0x1f,0xba,0x84,
	0xec,0x62,0xf4,0x39,0x6e,0x9f,0x95,0xb4,0xa6,0x64,0x47,0xd3,0xf8,0x46,0xb9,0xb8,
	0xbe,0x49,0x52,0xf6,0x11,0x63,0xf2,0xbc,0x55,0xff,0x2e,0xef,0x1e,0x1d,0xb7,0x31,
	0xad,0x03,0xd1,0x66,0xff,0x4f,0xaf,0xb8,0x5d,0x00,0xfb,0xe2,0xcc,0xa7,0x31,0xc1,
	0xba,0xe9,0x73,0x7f,0x0e,0x6e,0x54,0x6f,0x77,0x8c,0x55,0xe1,0x85,0x9c,0xde,0x4f,
	0xe5,0x3d,0xe4,0x17,0xf9,0xa6,0xfc,0xbe,0x14,0xf7,0x87,0x39,0xbf,0x43,0x1c,0x21,
	0x2e,0x73,0xe9,0x86,0xa9,0xd1,0x65,0xb9,0x9c,0x2e,0x58,0xfa,0x26,0x87,0xe0,0x12,
	0xe3,0xff,0x65,0x5a,0x5f,0x1d,0xa7,0x99,0x06,0x30,0xaf,0x4f,0x56,0xf3,0x33,0x46,
	0xa2,0x4d,0xeb,0x1c,0xe5,0x39,0xfa,0xe3,0x87,0xd2,0xee,0xd6,0x1d,0x48,0xb6,0x2e,
	0x4e,0xe0,0x93,0xd5,0x4a,0x8e,0xc3,0xf6,0x4f,0x3e,0x31,0x7e,0x04,0xd8,0xcd,0x6c,
	0xff,0xa9,0x1b,0x6a,0x8d,0x8e,0xf9,0x44,0x59,0xc0,0x77,0xea,0x60,0x31,0xfe,0xf6,
	0x15,0x11,0x7e,0x5e,0x1c,0xd5,0xdb,0xbd,0x97,0xd1,0xdc,0x45,0xb5,0x71,0x30,0x41,
	0x1f,0x90,0xf2,0xc6,0xa3,0x62,0xf1,0xb5,0xe5,0x20,0x14,0x62,0x38,0x07,0x63,0x41,
	0xd9,0x48,0x53,0xca,0x35,0x1e,0x13,0xc6,0xc7,0x87,0x52,0x84,0x84,0x9d,0x48,0x10,
	0x59,0xff,0x5f,0x97,0xa1,0x02,0x82,0x01,0x01,0x00,0xc8,0x4f,0xef,0xb2,0x4b,0x6f,
	0xb2,0xd7,0xac,0x57,0x0e,0x3a,0xf6,0xa6,0x1b,0x17,0xae,0x12,0xe7,0xb7,0x1e,0x3c,
	0xe8,0x04,0xc7,0x63,0x21,0xbe,0x42,0x53,0xe2,0xa8,0x73,0x2a,0xdd,0x51,0x73,0x77,
	0x7f,0x9c,0xe1,0x94,0xa2,0x0f,0xea,0x76,0xf0,0x8e,0x58,0x66,0x8e,0x35,0x2c,0xd7,
	0xbd,0x41,0x99,0xe7,0xcf,0xa5,0xb1,0xa1,0x26,0x6a,0x62,0xef,0x9a,0xdf,0x44,0x3d,
	0x6a,0x2a,0x2c,0xc0,0x1b,0x5e,0xfc,0xa5,0xd2,0x3a,0xd5,0x4a,0x77,0x7c,0xcd,0x16,
	0x9d,0x80,0xe0,0xa0,0xba,0x74,0x99,0x48,0x29,0x19,0x54,0xa5,0x4b,0xf5,0xcc,0x95,
	0xaf,0x3d,0x0f,0xf6,0x3b,0x18,0x09,0x6c,0x04,0x91,0xfe,0xa2,0xa2,0x8c,0xaa,0xa9,
	0xda,0xd0,0xca,0x06,0x20,0xe7,0x76,0x50,0x68,0xe4,0x84,0x85,0x50,0xc2,0x65,0x22,
	0xe8,0x2b,0x50,0x1c,0xc0,0x27,0xec,0x6e,0x28,0xfb,0xa7,0x9d,0x9f,0xa1,0x09,0x43,
	0x95,0xbb,0x71,0xd4,0xa8,0x3b,0x54,0xeb,0xd1,0xd5,0x06,0xb9,0x95,0x7c,0x79,0x81,
	0x2d,0xef,0xcf,0x84,0x98,0x8d,0x1a,0x1c,0x5d,0x6d,0xed,0x70,0x03,0x11,0x2d,0xd4,
	0x74,0x79,0x33,0x4b,0x2d,0x72,0xd2,0x68,0x22,0xb9,0x38,0x91,0xda,0x8f,0xd7,0x79,
	0xc8,0x03,0x93,0x6f,0xa6,0x3f,0x0d,0x8d,0x17,0x42,0x38,0xda,0xfc,0x84,0xc9,0x31,
	0x1a,0xa9,0x52,0x27,0x80,0xa4,0x24,0xed,0x29,0x0b,0x97,0x00,0x16,0x6a,0x0e,0x98,
	0xa0,0x2a,0x09,0xc0,0xf4,0x63,0xf7,0xc8,0x76,0xde,0xef,0x0b,0xd2,0x6c,0x79,0x00,
	0x9f,0xba,0x35,0xdc,0x7b,0xa2,0xd6,0x7e,0x34,0x85,0x02,0x82,0x01,0x01,0x00,0xc2,
	0xf1,0xfe,0xa0,0x62,0x55,0xa6,0xf7,0x2f,0xc0,0x13,0x33,0x55,0x35,0x13,0x4b,0x91,
	0x5d,0x9b,0x32,0x6b,0x95,0x2e,0xa3,0xdd,0xd2,0xe9,0x4b,0x25,0x5c,0x53,0xe1,0x2a,
	0x16,0x19,0x1a,0x93,0x41,0x62,0x83,0x23,0x9a,0x31,0xe0,0x74,0xc8,0xe3,0x68,0x58,
	0xc5,0x9b,0x00,0x3f,0x7d,0x3c,0x20,0x44,0x66,0x04,0x3c,0x75,0xdb,0xf3,0x50,0x44,
	0xfd,0x48,0xf4,0x69,0x8f,0x1a,0x8f,0xa3,0x55,0x99,0xc1,0xed,0xe9,0x46,0xc2,0x7d,
	0x06,0xe7,0x28,0xc1,0xf0,0xe4,0x88,0xaa,0x7b,0x15,0x22,0xda,0x8a,0x80,0x94,0x4e,
	0xac,0xe5,0x0f,0x10,0xea,0xac,0x8b,0xdc,0x59,0x57,0x3f,0xde,0xf6,0xf0,0x3e,0x4d,
	0xc2,0x60,0x96,0x15,0x3c,0x41,0xfa,0x52,0xc6,0xd9,0xa9,0x92,0x76,0xc2,0x64,0x22,
	0x2e,0xb5,0xc8,0x97,0x4a,0xf5,0xe5,0xdc,0x18,0xb6,0x1d,0xc9,0xf3,0xea,0x1b,0xf9,
	0xf4,0x06,0xee,0x08,0x12,0x2e,0x96,0x96,0x8a,0x65,0x90,0x8c,0x35,0x00,0xdc,0x1d,
	0x79,0x43,0x12,0x20,0xe3,0xcd,0xa1,0x8e,0x86,0x63,0x15,0x1f,0x9a,0x48,0x37,0x9d,
	0x0d,0x3e,0xd4,0x26,0x2b,0xc9,0x1a,0x84,0x67,0x17,0x88,0xc7,0x31,0x20,0xa7,0xbc,
	0xda,0x31,0x1f,0xde,0x67,0xb3,0x5d,0xec,0x05,0xd7,0xaf,0xa7,0x79,0x06,0xd8,0x27,
	0xf8,0xbb,0x3c,0xea,0x53,0xf4,0x38,0x47,0x0b,0x55,0x24,0xbf,0xb4,0x38,0x8a,0x44,
	0xa0,0x27,0xa5,0xd9,0x0d,0xf3,0xf1,0x1d,0xc4,0xc9,0xb5,0x4b,0x35,0x1c,0xe0,0x5b,
	0x69,0x56,0x1b,0x11,0x27,0x8d,0x00,0xb8,0xb7,0x87,0xd8,0xb4,0xed,0x7d,0x7d,0x02,
	0x82,0x01,0x00,0x7d,0x6c,0x27,0xce,0x80,0x93,0x68,0xec,0xc7,0xf9,0x1e,0x6c,0xe7,
	0x01,0x2c,0x97,0x90,0x24,0x40,0x38,0x15,0x53,0xd7,0x87,0x1e,0x7d,0x40,0xa4,0x8b,
	0x8d,0x50,0xaf,0x5e,0xa5,0x29,0x3c,0x95,0xca,0xed,0xf9,0x81,0xf9,0x79,0xdb,0xf3,
	0x58,0x13,0xd9,0x5d,0x1a,0xa1,0xd2,0x43,0xc8,0xb5,0xb4,0xbc,0xb4,0x3b,0xfd,0x28,
	0x92,0x99,0xa6,0x25,0x5a,0x97,0xa3,0x52,0x6c,0x0d,0xec,0x68,0x66,0xc4,0xfc,0x9d,
	0xbf,0x0a,0x3a,0x52,0x50,0xb5,0x2e,0x4c,0x8f,0xeb,0x80,0xc5,0xa5,0x7d,0xfa,0x01,
	0xfb,0xff,0xd7,0xdf,0x7b,0x3c,0x6b,0xa4,0x74,0xd8,0xeb,0xa7,0xf1,0xea,0x20,0x6b,
	0xcd,0xd9,0xb2,0xbc,0x38,0x83,0x05,0x06,0xdb,0x21,0xaa,0x77,0xc4,0x8c,0x97,0xc1,
	0x2a,0x29,0xf3,0x63,0xd2,0xc1,0xb5,0x66,0x74,0x0b,0xe1,0x0a,0xe1,0x65,0xa3,0xd9,
	0xd3,0x44,0x10,0x06,0x6c,0x98,0x85,0xd1,0x72,0x22,0xef,0xe2,0x1f,0x60,0x52,0xfe,
	0x22,0x46,0x19,0x57,0x83,0x9e,0x48,0xf9,0x1f,0x5c,0x6e,0xfa,0x85,0xb0,0xab,0x30,
	0xfd,0x2f,0xb6,0xe3,0xe3,0xad,0xd7,0xf4,0xd5,0x41,0x34,0x9e,0x5c,0x65,0x11,0xaf,
	0x13,0x0b,0x22,0xe4,0x7b,0xd6,0xd9,0x17,0xf7,0x25,0xb8,0xaf,0x79,0x4a,0x23,0xd2,
	0xcd,0x54,0x11,0xdf,0xdd,0xa6,0x1d,0x52,0x88,0x4f,0x84,0x53,0x6f,0x6e,0x89,0xd8,
	0xa1,0x32,0x81,0x12,0x44,0x38,0xc4,0xa1,0x6d,0x09,0x64,0x29,0x05,0x4b,0x40,0xc8,
	0xe6,0x19,0x20,0x0f,0x97,0x5c,0x63,0x15,0x04,0xc1,0xfe,0x6b,0x39,0x29,0xa4,0xd5,
	0x1e,0xe2,0xad,0x02,0x82,0x01,0x00,0x24,0x92,0x8f,0xc9,0x79,0x09,0x46,0x9c,0xa3,
	0x19,0xae,0xc0,0x77,0xa0,0xd0,0x70,0xe1,0xe1,0xa4,0xc7,0x0d,0xc5,0xdc,0x0d,0x24,
	0x05,0x78,0x7c,0xff,0x92,0x55,0xae,0x2d,0x5e,0x1d,0xf1,0x8d,0x64,0xbb,0xdd,0x8c,
	0x65,0x56,0x2c,0x1c,0xdc,0xbf,0x45,0x09,0x3a,0x71,0x3c,0xd7,0xac,0x60,0x06,0x51,
	0xae,0xad,0xe6,0xc5,0xd9,0xb0,0xc9,0x03,0x58,0x5d,0x42,0x75,0x37,0x42,0xad,0x65,
	0xe0,0x1e,0x4b,0x72,0x9d,0xcc,0x07,0x9a,0xbb,0x1b,0xcc,0xda,0xad,0x9d,0xc2,0x41,
	0xf1,0x7b,0x62,0xa1,0x8b,0x50,0x5a,0x02,0x74,0x8f,0x38,0x87,0x5c,0xef,0x68,0x01,
	0xbb,0xc5,0x11,0x97,0x7b,0xce,0x50,0x71,0xf8,0x20,0x74,0xa7,0xa1,0x39,0x63,0x83,
	0xfa,0x08,0x45,0xb6,0xd3,0x8e,0xde,0x88,0x47,0x29,0x15,0x6b,0xc4,0xc5,0x63,0x0d,
	0x2a,0x99,0xa7,0xf7,0x06,0x4a,0x8a,0x5b,0x17,0x3b,0xe1,0x96,0x24,0x0b,0x17,0x77,
	0x40,0x99,0x93,0x47,0xaa,0x7d,0xf1,0xcd,0x99,0xbd,0x4a,0x7e,0x5f,0x1e,0x69,0xcb,
	0xba,0x4c,0x86,0x5e,0xfa,0x6b,0xc7,0xfb,0x2f,0xcb,0xf4,0xb3,0x00,0x8d,0xe6,0xea,
	0xa6,0x08,0x95,0x41,0x81,0x66,0xf5,0xf1,0x09,0x22,0x24,0x2f,0x6e,0x57,0x09,0x2c,
	0xc9,0x5f,0xd0,0x75,0x63,0xd0,0x33,0xe7,0x33,0xd3,0xb4,0xb6,0xe5,0x6f,0x30,0xcb,
	0xab,0x45,0x9a,0xf2,0x58,0x16,0x2f,0x62,0x76,0x85,0x59,0xa8,0xe1,0xe4,0x3c,0xfc,
	0xef,0xb9,0x43,0xc8,0xcb,0x3b,0x12,0xa0,0x33,0x9f,0xd2,0xce,0x22,0x14,0x62,0xe9,
	0x44,0x8d,0x38,0xcb,0xa0,0xae,0x65,0x02,0x82,0x01,0x01,0x00,0x9f,0x59,0x01,0x14,
	0x57,0xea,0x08,0x80,0x9f,0x2e,0x0f,0x28,0xc7,0xa2,0x05,0xab,0xb4,0xe4,0x1e,0x53,
	0x3a,0x8f,0xf5,0xb1,0x58,0xb9,0xb6,0x36,0x20,0x36,0xd4,0xe0,0x3d,0xa7,0x56,0x4f,
	0x1b,0xea,0x2e,0x35,0x00,0xf6,0xef,0xa1,0x8f,0x1a,0x70,0x6e,0x82,0x69,0xc4,0xda,
	0x51,0x50,0x58,0x1d,0x2c,0x8d,0xe0,0xb4,0x31,0xf7,0x7f,0x7d,0x9c,0xef,0x4d,0x60,
	0x03,0xb2,0x47,0x69,0x0b,0x6d,0xfa,0xf8,0xca,0x68,0x07,0xea,0xdb,0xae,0xb3,0xe4,
	0xcd,0xcd,0x8a,0x01,0xa1,0xc2,0xc1,0x44,0x9e,0xcf,0x54,0xed,0x71,0x76,0x8c,0xf3,
	0xf4,0xc4,0x0b,0xe9,0x2e,0xd1,0x1c,0x12,0xfb,0x34,0x8b,0xfd,0x4b,0xc3,0x2f,0x24,
	0x24,0x00,0x3c,0x05,0x2a,0xf7,0xa6,0xc9,0xfe,0x98,0xbf,0xaa,0x33,0xf6,0x98,0x72,
	0x7f,0x45,0x09,0x14,0x9d,0x4b,0xd6,0xc8,0x2c,0x1e,0x9d,0x58,0x07,0xd7,0x4f,0x27,
	0x5b,0xc6,0x01,0xb8,0xa1,0x49,0xc0,0xc8,0x95,0x5f,0xa3,0xdf,0x81,0x6b,0x18,0xa5,
	0x31,0x83,0xcc,0x00,0xcd,0x9e,0x05,0xd7,0x91,0x84,0x22,0xc2,0x0e,0xf8,0x00,0xb9,
	0xdd,0x99,0x77,0xcc,0xe7,0x39,0xb8,0xf7,0x19,0x36,0x38,0xce,0x89,0x1b,0xa1,0x54,
	0x13,0x25,0x6c,0x45,0x84,0xa6,0x70,0x75,0xb4,0x4e,0x4b,0xc7,0xb0,0x8b,0x7b,0x28,
	0x50,0x6a,0xc7,0x14,0x8f,0x1b,0x96,0xbf,0x8b,0x5e,0x37,0x36,0xbc,0x04,0x95,0xe3,
	0xd9,0xf8,0xc1,0x0a,0x1f,0x2c,0xe8,0x01,0x2e,0x30,0x39,0x62,0xf1,0x86,0xca,0x70,
	0xe7,0x72,0xb6,0x9b,0xee,0x39,0x69,0xfd,0x57,0x0d,0xb3,0xb4
};

const size_t RSA4K_PRIVKEY_DER_LEN = sizeof (RSA4K_PRIVKEY_DER);

const uint8_t RSA4K_PRIVKEY_DER_HASH[] = {
	0xd7,0x8d,0x98,0x72,0x24,0x1c,0x8f,0x2b,0xe8,0xd5,0xd1,0x44,0x3d,0x85,0x42,0x9c,
	0x08,0xbc,0xda,0x15,0xbe,0xc0,0xd9,0xfd,0xf8,0x03,0xf7,0x7c,0x05,0xf2,0xe4,0x09
};

const size_t RSA4K_PRIVKEY_DER_HASH_LEN = sizeof (RSA_PRIVKEY_DER_HASH);

const uint8_t RSA5K_PUBKEY_DER[] = {
	0x30,0x82,0x02,0xa2,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,
	0x01,0x05,0x00,0x03,0x82,0x02,0x8f,0x00,0x30,0x82,0x02,0x8a,0x02,0x82,0x02,0x81,
	0x00,0xc4,0x88,0x7e,0x4e,0x49,0xc7,0xb9,0x9c,0x46,0xce,0x9e,0x1e,0x4e,0x01,0x85,
	0x01,0x38,0xa9,0x8e,0x42,0x18,0xa9,0x74,0x26,0xc6,0x70,0x03,0x77,0xcf,0xd3,0xba,
	0x6d,0x01,0xbe,0x45,0x46,0xa9,0xc7,0xb7,0x06,0xf8,0xbb,0x5a,0x61,0xc1,0x49,0x6d,
	0xcc,0x33,0xe4,0x80,0x73,0xf3,0x96,0x67,0x5f,0xc0,0x30,0xfb,0x6d,0x14,0x7d,0xf0,
	0x95,0xb9,0x3a,0x1b,0x0e,0x6a,0x7b,0xfc,0xc1,0xa5,0x49,0x6e,0xab,0xb8,0x3d,0x02,
	0xe1,0x87,0xed,0x29,0x49,0xdb,0xac,0xac,0x40,0x19,0x72,0xa7,0x41,0xb4,0xf5,0x86,
	0x58,0xac,0xcb,0x94,0x24,0x0d,0x8d,0x5f,0x78,0x95,0x92,0xb3,0x58,0x1e,0x3c,0x1f,
	0x8b,0xaa,0xcf,0xcb,0x55,0xb5,0xc9,0xb4,0xdc,0xd0,0xf8,0x5e,0x71,0x1f,0xf2,0x0c,
	0x22,0x77,0x8d,0x7d,0x60,0xa0,0x2b,0xe5,0xea,0x02,0xca,0x90,0x39,0x7c,0xf4,0x60,
	0x66,0x59,0x2c,0xec,0x39,0xb7,0x45,0x25,0x07,0x4b,0x52,0xb3,0x70,0xa2,0x86,0x44,
	0xec,0x7e,0x41,0xf7,0x5d,0x2a,0x6a,0x52,0x7f,0xf7,0x89,0x68,0x05,0x62,0x29,0x84,
	0xf8,0x02,0x2c,0xc4,0x43,0x99,0x83,0xad,0x9e,0x12,0x00,0xf7,0x93,0xe1,0x4f,0x8b,
	0x40,0xfb,0xa9,0x00,0xf1,0x30,0xd1,0x38,0x98,0xc7,0xab,0xcc,0x2d,0x8a,0x1b,0xb9,
	0x4a,0xae,0x55,0x63,0x2c,0x19,0xa6,0x89,0x12,0xc3,0xd2,0xc5,0xd6,0x6b,0x74,0x7e,
	0x83,0x44,0xa4,0x87,0x2b,0xe9,0x39,0xa0,0x79,0xf6,0x3a,0x1c,0xd5,0x50,0x7e,0x1d,
	0x8e,0x91,0x33,0xd6,0x19,0x65,0x29,0x4f,0xc1,0xe3,0x26,0xb8,0x3d,0x3b,0x07,0x1d,
	0x02,0x81,0xab,0xb1,0xf5,0x17,0x86,0x55,0xe0,0xff,0x5c,0x26,0x71,0x03,0xd1,0x75,
	0xa8,0xc5,0xdb,0xdc,0xad,0xed,0x01,0x57,0xcd,0x21,0x51,0xcb,0x2c,0x76,0xc6,0xaf,
	0xe0,0xb5,0xcb,0xf8,0x2c,0xed,0xb3,0xd6,0xc0,0x6c,0x6e,0x00,0x70,0xc3,0x87,0xeb,
	0xd4,0x7b,0xe3,0x84,0x43,0x0f,0x4e,0x94,0x08,0x37,0x87,0x2a,0x1f,0x6f,0x49,0xc6,
	0x6a,0x78,0x08,0x86,0x28,0x1c,0x76,0x51,0x7b,0x23,0xb0,0xda,0x44,0xed,0x78,0x11,
	0x0c,0xc6,0x29,0x14,0x3b,0x6c,0xfc,0x9c,0x5a,0x4a,0xf2,0xf1,0x42,0x68,0xc2,0xbd,
	0xe7,0x8f,0x60,0x98,0xa3,0x26,0xd2,0x36,0xfe,0xb5,0xc0,0xa9,0xdc,0x68,0xa5,0xb4,
	0x64,0x1b,0x8e,0xe5,0xe4,0x7e,0x72,0xa5,0x89,0x40,0x3f,0x16,0x16,0x8e,0xdb,0x3b,
	0x9f,0x24,0x3b,0x82,0x1d,0xbf,0xdb,0x07,0x19,0xbb,0xdc,0xf5,0xe1,0x96,0x68,0x5c,
	0x22,0xc6,0x4f,0x05,0x63,0x09,0x2c,0xb0,0xee,0xfb,0xd2,0xea,0xb3,0x72,0xeb,0xd7,
	0xff,0x92,0x1f,0x45,0xd8,0x5f,0x45,0x9f,0xdf,0x58,0xef,0xa1,0xa4,0x73,0x21,0x0f,
	0xc3,0x6c,0x42,0x14,0x79,0x77,0xff,0xc2,0xaa,0x99,0x85,0x27,0xce,0xec,0xf4,0xff,
	0x32,0xa4,0x6b,0xe6,0x79,0x50,0x88,0xfb,0x2b,0xa7,0x61,0x22,0xda,0x62,0x76,0x42,
	0x67,0x1f,0xfb,0x77,0x66,0x36,0x32,0x40,0x2f,0xe0,0xfd,0x92,0xb9,0x73,0x66,0x0a,
	0x07,0x62,0x49,0x8a,0x16,0xf9,0xc2,0xc0,0xb0,0x94,0xfb,0x91,0xf7,0xad,0xb1,0xb5,
	0x5d,0x73,0xbf,0x59,0x30,0x45,0xa7,0xf3,0x12,0x6e,0x9c,0x39,0xea,0x45,0x98,0xea,
	0x2f,0x06,0xea,0xcf,0xdc,0xdb,0xff,0x13,0xd9,0x09,0x6a,0xe1,0xe4,0xdc,0xb9,0xaf,
	0x01,0x6b,0x44,0x7c,0xdf,0xe8,0xfa,0x8c,0x13,0x69,0x76,0x88,0xa7,0x7f,0x53,0xf9,
	0x10,0x65,0xde,0xf5,0x59,0xbf,0xf3,0x0f,0xe2,0xd0,0x16,0xe6,0x09,0x8a,0x77,0x95,
	0xae,0x1e,0x9d,0x20,0x81,0x3c,0x02,0x16,0x2a,0x36,0x68,0xb0,0x03,0xc2,0x7b,0x12,
	0xd7,0x5c,0x56,0xc0,0xe0,0x7a,0xf5,0xb3,0x14,0x19,0x72,0x4e,0x43,0xee,0x94,0x32,
	0xd8,0x04,0x13,0x93,0xc4,0x12,0xf7,0x4b,0x76,0x77,0xe6,0x91,0xed,0x34,0x6b,0xaa,
	0xd5,0x10,0x93,0x67,0x16,0x7c,0x5f,0x05,0x02,0xa9,0x95,0x3e,0x50,0xd2,0x70,0x69,
	0x0f,0xa3,0x34,0xfd,0x6a,0xa0,0xba,0xc2,0x51,0x50,0x2e,0xcf,0xe6,0xfe,0x34,0x97,
	0xe7,0x02,0x03,0x01,0x00,0x01
};

const size_t RSA5K_PUBKEY_DER_LEN = sizeof (RSA5K_PUBKEY_DER);


/*******************
 * Test cases
 *******************/

static void rsa_same_public_key_test (CuTest *test)
{
	bool status;

	TEST_START;

	status = rsa_same_public_key (&RSA_PUBLIC_KEY, &RSA_PUBLIC_KEY);
	CuAssertIntEquals (test, true, status);
}

static void rsa_same_public_key_test_different_exponent (CuTest *test)
{
	bool status;
	struct rsa_public_key tmp;

	TEST_START;

	memcpy (&tmp, &RSA_PUBLIC_KEY, sizeof (tmp));
	tmp.exponent = 3;

	status = rsa_same_public_key (&RSA_PUBLIC_KEY, &tmp);
	CuAssertIntEquals (test, false, status);
}

static void rsa_same_public_key_test_different_modulus (CuTest *test)
{
	bool status;

	TEST_START;

	status = rsa_same_public_key (&RSA_PUBLIC_KEY, &RSA_PUBLIC_KEY2);
	CuAssertIntEquals (test, false, status);
}

static void rsa_same_public_key_test_different_mod_length (CuTest *test)
{
	bool status;
	struct rsa_public_key tmp;

	TEST_START;

	memcpy (&tmp, &RSA_PUBLIC_KEY, sizeof (tmp));
	tmp.mod_length--;

	status = rsa_same_public_key (&RSA_PUBLIC_KEY, &tmp);
	CuAssertIntEquals (test, false, status);
}

static void rsa_same_public_key_test_short_modulus (CuTest *test)
{
	bool status;
	struct rsa_public_key tmp1;
	struct rsa_public_key tmp2;

	TEST_START;

	memcpy (&tmp1, &RSA_PUBLIC_KEY, sizeof (tmp1));
	memset (&tmp1.modulus[128], 1, RSA_MAX_KEY_LENGTH - 128);
	tmp1.mod_length = 128;

	memcpy (&tmp2, &RSA_PUBLIC_KEY, sizeof (tmp2));
	memset (&tmp2.modulus[128], 2, RSA_MAX_KEY_LENGTH - 128);
	tmp2.mod_length = 128;

	status = rsa_same_public_key (&tmp1, &tmp2);
	CuAssertIntEquals (test, true, status);
}

static void rsa_same_public_key_test_null (CuTest *test)
{
	bool status;

	TEST_START;

	status = rsa_same_public_key (NULL, &RSA_PUBLIC_KEY);
	CuAssertIntEquals (test, false, status);

	status = rsa_same_public_key (&RSA_PUBLIC_KEY, NULL);
	CuAssertIntEquals (test, false, status);

	status = rsa_same_public_key (NULL, NULL);
	CuAssertIntEquals (test, true, status);
}


TEST_SUITE_START (rsa);

TEST (rsa_same_public_key_test);
TEST (rsa_same_public_key_test_different_exponent);
TEST (rsa_same_public_key_test_different_modulus);
TEST (rsa_same_public_key_test_different_mod_length);
TEST (rsa_same_public_key_test_short_modulus);
TEST (rsa_same_public_key_test_null);

TEST_SUITE_END;
